【发布时间】:2015-01-20 10:35:00
【问题描述】:
是否可以做一个索引匹配的数组公式:
例如:
=arrayformula(if(len(A3:A),INDEX('SheetB'!E:E,MATCH(A3:A,'SheetB'!H:H,0))))
如果没有,有没有不涉及google脚本的解决方案?
【问题讨论】:
标签: arrays google-sheets formula
是否可以做一个索引匹配的数组公式:
例如:
=arrayformula(if(len(A3:A),INDEX('SheetB'!E:E,MATCH(A3:A,'SheetB'!H:H,0))))
如果没有,有没有不涉及google脚本的解决方案?
【问题讨论】:
标签: arrays google-sheets formula
看来INDEX 不能返回多个值。不能在ARRAYFORMULA内部使用。
我知道的唯一解决方案是使用VLOOKUP。
看到这个线程: https://productforums.google.com/forum/#!topic/docs/jVvjbz8u7A8
那里的例子:
=ArrayFormula(VLOOKUP( B12:B15; H2:R32; 1; TRUE))
干杯!
【讨论】:
我不确定它是否会起作用,但我在 ARRAYFORMULA 中的 INDEX(...) 之前做了一个“IF(ISBLANK() 并且它一直下降
【讨论】:
在 OP 的特定情况下,实际上可以将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))
如果后者按 OP 的预期工作。
【讨论】:
我知道这已经过时了,但事实证明 INDEX() 现在充当了事实上的 ARRAYFORMULA()。你可以在this google sheet 上看到一个很好的例子,它展示了如何使用 a 和 index(split()) 从单元格中提取一组特定的文本。 MK.demo 选项卡提供了有关数组公式如何通过 INDEX() 函数隐含的可视化。
如今,使用 FILTER() 或 QUERY() 函数可以提供 OP 正在寻找的多种 vlookup。
【讨论】: