ARRAYFORMULA-无法在CONCATENATE上使用

时间:2019-07-26 03:21:04

标签: google-sheets google-sheets-formula array-formulas gs-vlookup

我在Google表格文档中具有以下公式:

=TRIM(CONCATENATE(LOOKUP($D3, MetaData_Classes!$B$3:$B, MetaData_Classes!$D$3:$D), " ", $E3, " ", LOOKUP($D3, MetaData_Classes!$B$3:$B, MetaData_Classes!$E$3:$E)))

Spreadsheet available here,代码在“格式化子类”表的“ MetaData_Subclasses”标签中。)

虽然很长,但基本上可以分为以下简单语言命令:

获取与D3关联的两个值,并将它们连接到E3的任一侧(修剪空白)。

此公式可以很好地工作,并且可以将其向下拖动到整个列中以获取所需的结果。

但是,我想使这一过程自动化,以便您不必在添加新元素时就手动将公式向下复制到列中,并且看起来ARRAYFORMULA是为此任务而构建的。

问题似乎是,ARRAYFORMULA与试图将其转换为可以理解的公式的交互作用不佳。即使只是尝试以下测试命令也会失败:

=ARRAYFORMULA(CONCATENATE(D3:D))

因为CONCATENATE先于ARRAYFORMULA到达数组值(因此输出一个字符串,其中包含D3:D中每个元素的顺序排列)。

如何使用CONCATENATELOOKUP等功能,同时仍然可以使用ARRAYFORMULA

还是有另一种方法可以使该公式遍及整个列?

1 个答案:

答案 0 :(得分:1)

=ARRAYFORMULA(TRIM(
 IFERROR(VLOOKUP(C2:C, MetaData_Classes!A2:D, 3, 0))&" "&D2:D&" "&
 IFERROR(VLOOKUP(C2:C, MetaData_Classes!A2:D, 4, 0))))

0