首页 > 解决方案 > 在 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 公式需要基于包含有效名称选项列表的帮助列是有条件的。

逻辑:

使用辅助列的预期结果

[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-sheetsconcatenationgoogle-sheets-formulaarray-formulas

解决方案


看看这是否适合你:

=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))))

推荐阅读