在 Google 表格中使用 ARRAYFORMULA 有条件地基于辅助列数据进行 CONCAT
Posted
技术标签:
【中文标题】在 Google 表格中使用 ARRAYFORMULA 有条件地基于辅助列数据进行 CONCAT【英文标题】:Conditionally CONCAT based on helper column data using ARRAYFORMULA in Google Sheets 【发布时间】:2021-07-27 11:29:19 【问题描述】:我有 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 |
是否可以创建一个数组公式来实现这些预期结果?
这是我的 Google 表格:Click Here
【问题讨论】:
【参考方案1】:看看这是否适合你:
=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))))
【讨论】:
哇!非常令人印象深刻。这完美!谢谢JP!以上是关于在 Google 表格中使用 ARRAYFORMULA 有条件地基于辅助列数据进行 CONCAT的主要内容,如果未能解决你的问题,请参考以下文章
在 Google 表格中使用 BigQuery,如何授予其他用户按“刷新”的权限?
在 Google Apps 脚本中使用 BigQuery 连接到 Google 电子表格