使用带有索引匹配的数组公式

8

能否使用索引匹配函数进行数组公式:

例如:

=arrayformula(if(len(A3:A),INDEX('SheetB'!E:E,MATCH(A3:A,'SheetB'!H:H,0))))

如果没有的话,是否有不涉及Google脚本的解决方案?
5个回答

8

VLOOKUP的问题在于,如果找不到正确的值,它会返回最接近的值。 - Hernan Rajchert
5
如果你将FALSE作为第四个参数传入,那么就不会发生某个情况。 - Armel Larcier
1
VLOOKUP的另一个问题是它只能向右进行搜索,即数据必须在搜索关键列的右侧。要执行向左搜索,解决方案是使用INDEX MATCH... - alleen1
问题在于VLOOKUP不区分大小写。 - Kristjan Adojaan

3

使用XLOOKUP函数

=ARRAYFORMULA(XLOOKUP(K2:K,R2:R,S2:S))

使用 XLOOKUP 函数,您可以在一个列中查找搜索项,并从另一列返回同一行的结果,而无论返回列位于哪一侧。

0
在本帖作者的特定情况下,可以实际上使用 VLOOKUP 来替代 MATCH,以达到其预期目的:
=arrayformula(if(len(A3:A),VLOOKUP(A3:A,{SheetB!E:E,SheetB!H:H},2,false)))

在尝试使用 INDEX 检索多个值的一般情况下,可以用 VLOOKUPSEQUENCE 的替代方法来解决。
=arrayformula(VLOOKUP(A:A,{SEQUENCE(rows(B:B)),B:B},2,true))

这段代码实现了原本需要完成的任务

=arrayformula(INDEX(B:B,A:A))

如果后者按照 OP 的预期工作。

0

我知道这已经过时了,但事实证明INDEX()现在作为一个实际的ARRAYFORMULA()。您可以在this google sheet上看到一个绝妙的例子,它展示了如何使用a和index(split())从单元格中提取特定的文本集。MK.demo选项卡提供了一个可视化的INDEX()函数隐含的数组公式。

现在,使用FILTER()或QUERY()函数可以提供OP所寻找的多个vlookup类型。


-1

我不确定它是否会起作用,但我在ARRAYFORMULA中的INDEX(...)之前加了一个"IF(ISBLANK())",然后它一直往下走。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接