我有一张表格,基本上将会员名单中的姓名和地址信息添加到银行付款清单中。
它使用 Xlookup(在 G 列中)将银行帐户名称(B 列)与会员表(礼品援助清单)上的银行帐户名称列表进行比较。如果找到匹配项,它会使用 ImportRange 从会员列表中导入 C 至 F 列。如果找不到任何内容,它会写入“无 GA”
=XLOOKUP(B4:B, IMPORTRANGE($G$2, "礼品援助清单!H:H"), IMPORTRANGE($G$2, "礼品援助清单!C:F"),"无 GA",0)
这很有效,但我想使用 Arrayformula 将其复制到列中(而不是手动执行 - 银行数据实际上是另一个 Importrange,所以我希望公式在添加更多数据时自动扩展到列中。)
我尝试过这个:
=ArrayFormula(XLOOKUP(B4:B, IMPORTRANGE($G$2, "礼品援助清单!H:H"), IMPORTRANGE($G$2, "礼品援助清单!C:F"),"无 GA",0))
它能起作用,但是它似乎只带来礼品援助清单中第一列(C)的数据,而不带来其他的数据。
我意识到,在这个例子中,导入范围不是必需的,但在现实世界中,礼品援助清单信息位于单独的工作表中。无论如何,我尝试将它们取出,但它仍然只导入第一列数据。
因此我认为这可能与 XLOOKUP 有关,但在我开始尝试寻找解决方法之前,我想在这里询问一下。
(我意识到,显而易见的解决方法是在每一列中单独复制一份公式,然后一次只带来一列数据,但这并不那么优雅)
有什么想法可以解释为什么会这样或者我该如何解决它?
链接的样本表有四个标签:
- 使用非数组公式,
- 使用数组公式,
- 使用删除了 Importrange 的数组公式
- 要导入的 GIFTAIDLIST 数据。(这通常会在单独的电子表格中)
提前谢谢汤姆
使用
map/lambda
代替arrayformula
来填充所有目标列: