Excel公式显示多个值(如Vlookup)

我需要执行类似于一个查找,但有一个值,我想显示它发现在不同的工作表上的多个项目。 防爆。 查找A,A发现,B列中的信息是唯一的,然后再次从第二个工作表的不同行中findA,B列中的信息又是唯一的。

多回报是一个相当普遍的问题。 主要思想是使用INDEX-SMALL而不是INDEX-MATCH 。 通常你只是search使用MATCH返回的行。 在这种情况下,您需要跟踪多个匹配并按顺序返回。 “按顺序”部分最好由SMALL处理,从ROWinput一个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 -…