能否使用索引匹配函数进行数组公式:
例如:
=arrayformula(if(len(A3:A),INDEX('SheetB'!E:E,MATCH(A3:A,'SheetB'!H:H,0))))
如果没有的话,是否有不涉及Google脚本的解决方案?
能否使用索引匹配函数进行数组公式:
例如:
=arrayformula(if(len(A3:A),INDEX('SheetB'!E:E,MATCH(A3:A,'SheetB'!H:H,0))))
看起来INDEX
不能返回多个值。它不能在ARRAYFORMULA
内使用。
我所知道的唯一解决方法是使用VLOOKUP
。
请参阅此主题: https://productforums.google.com/forum/#!topic/docs/jVvjbz8u7A8
这里是该主题中的示例:
=ArrayFormula(VLOOKUP( B12:B15; H2:R32; 1; TRUE))
干杯!
使用XLOOKUP函数
=ARRAYFORMULA(XLOOKUP(K2:K,R2:R,S2:S))
XLOOKUP
函数,您可以在一个列中查找搜索项,并从另一列返回同一行的结果,而无论返回列位于哪一侧。VLOOKUP
来替代 MATCH
,以达到其预期目的:=arrayformula(if(len(A3:A),VLOOKUP(A3:A,{SheetB!E:E,SheetB!H:H},2,false)))
INDEX
检索多个值的一般情况下,可以用 VLOOKUP
和 SEQUENCE
的替代方法来解决。=arrayformula(VLOOKUP(A:A,{SEQUENCE(rows(B:B)),B:B},2,true))
这段代码实现了原本需要完成的任务
=arrayformula(INDEX(B:B,A:A))
我知道这已经过时了,但事实证明INDEX()现在作为一个实际的ARRAYFORMULA()。您可以在this google sheet上看到一个绝妙的例子,它展示了如何使用a和index(split())从单元格中提取特定的文本集。MK.demo选项卡提供了一个可视化的INDEX()函数隐含的数组公式。
现在,使用FILTER()或QUERY()函数可以提供OP所寻找的多个vlookup类型。
我不确定它是否会起作用,但我在ARRAYFORMULA中的INDEX(...)之前加了一个"IF(ISBLANK())",然后它一直往下走。