我在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中每个元素的顺序排列)。
如何使用CONCATENATE
,LOOKUP
等功能,同时仍然可以使用ARRAYFORMULA
?
还是有另一种方法可以使该公式遍及整个列?