Excel公式显示多个值(如Vlookup)
我需要执行类似于一个查找,但有一个值,我想显示它发现在不同的工作表上的多个项目。 防爆。 查找A,A发现,B列中的信息是唯一的,然后再次从第二个工作表的不同行中findA,B列中的信息又是唯一的。
多回报是一个相当普遍的问题。 主要思想是使用INDEX-SMALL
而不是INDEX-MATCH
。 通常你只是search使用MATCH
返回的行。 在这种情况下,您需要跟踪多个匹配并按顺序返回。 “按顺序”部分最好由SMALL
处理,从ROW
input一个input来获得数组数量的增加。
范围的图片
单元格F3
中的公式是一个数组公式(按Ctrl + Shift + Enterinput),并向下复制,以确保它覆盖尽可能多的匹配。 额外的行返回#NUM!
当不需要时。
=INDEX($C$3:$C$8,SMALL(IF($B$3:$B$8=$E$3,ROW($B$3:$B$8)-ROW($B$2)),ROW(1:1)))
它是如何工作的 。
- 外部调用是指向正在查看
VALUE
列的INDEX
,并从那里返回结果。 -
INDEX
需要一个行号来返回值。 该行号是通过查找哪些行与给定的search词匹配来确定的。 - 为了查找行,将
ID
列与E3
的search值进行比较。 该检查包裹在IF
,如果匹配,则返回ROW
号码。 - 行号计算为
ROW()-ROW(top)
这是为了说明我的数据在B3
的偏移量。 - 一旦我们有了一个行数的数组,
SMALL
被用来以递增的顺序返回它们。SMALL
将跳过包含为非匹配行返回的FALSE
值的非数字。 - 最后,为了
INDEX
的单个数字,SMALL
使用ROW(1:1)
,随着公式被复制下来,将增加1-2-3 -…