ARRAYFORMULA - 不适用于 CONCATENATE

ARRAYFORMULA - Not Working on CONCATENATE

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

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

(Spreadsheet available here,代码在'Formatted Subclasses'table中的'MetaData_Subclasses'选项卡中。

虽然很长,但基本上分解为以下通俗易懂的语言命令:

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

这个公式运行良好,可以向下拖动它所在的整个列以获得所需的结果。

但是,我想自动执行此过程,这样您就不需要在添加新元素时手动将公式复制到列中,而且 ARRAYFORMULA 似乎是为此任务构建的。

问题似乎是 ARRAYFORMULA 无法很好地尝试将其转换为它可以理解的公式。即使只是尝试以下测试命令也会失败:

=ARRAYFORMULA(CONCATENATE(D3:D))

因为 CONCATENATEARRAYFORMULA 之前获取数组值(因此输出一个包含 D3:D 中每个元素的字符串)。

如何在使用 CONCATENATELOOKUP 等功能的同时仍然能够使用 ARRAYFORMULA

或者是否有另一种方法可以将此公式放在整列中?

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