google-sheets - 在 Google 表格中使用 ARRAYFORMULA 有条件地基于辅助列数据进行 CONCAT
问题描述
我有 2 列名称(名称 1,名称 2),我想将它们合并为一列。
[CURRENT DATA SET] [FORMULA - CONCAT]
| A | B | | D |
| Name1 | Name2 | | Name1_Name2 |
| Name3 | Name4 | | Name3_Name4 |
| Name5 | Name6 | | Name5_Name6 |
这部分正在使用我的 ARRAYFORMULA:
=ARRAYFORMULA(
IF(
ISBLANK(B4:B),
CONCAT(A4:A,B4:B),
CONCAT(A4:A,("_"&B4:B))
)
)
这是问题所在:有时我需要 CONCAT 公式将 B 列放在首位,然后是 A 列(示例 Name2_Name1)。
目标: CONCAT 公式需要基于包含有效名称选项列表的帮助列是有条件的。
逻辑:
- 如果辅助列与 CONCAT 匹配,则 CONCAT ColumnA_ColumnB。
- 如果辅助列与 CONCAT 不匹配,则为 ColumnB_ColumnA。
- 如果仍然不匹配,请留空。
使用辅助列的预期结果
[CURRENT DATA SET] [Helper Column] [EXPECTED RESULTS]
| A | B | | C | | D |
| Name1 | Name2 | | Name1_Name2 | | Name1_Name2 |
| Name3 | Name4 | | Name6_Name5 | | Name3_Name4 |
| Name5 | Name6 | | Name3_Name4 | | Name6_Name5 |
| Name7 | | | Name5 | | |
| Name5 | | | Name8 | | Name5 |
是否可以创建一个数组公式来实现这些预期结果?
这是我的谷歌表:点击这里
解决方案
看看这是否适合你:
=ArrayFormula(IFERROR(IFERROR(VLOOKUP(A4:A&IF(LEN(B4:B), "_"&B4:B,), D4:D, 1, 0), VLOOKUP(IF(LEN(B4:B), B4:B&"_",)&A4:A, D4:D, 1, 0))))
推荐阅读
- css - ng serve 命令出错。./ 节点模块/@angular-devkit/build
- javascript - 如何将 React-mapbox-gl 约束到其容器?
- node.js - 以编程方式设置域 node.js 应用程序
- stm32 - 如何在 STM32 中禁用 STOP 模式
- python - 如何在 TOC(目录)之前插入段落
- android - 使用 Flutter 将图像上传到通用 Google Drive 帐户
- python - 具有阈值二进制逻辑的 Opencv 阈值 Otsu
- angular - 在 Solace Event Broker 中验证传入连接
- python - 如何在python中对字母数字列表进行排序?
- python - 将 else 语句放入循环中