2017-07-27 209 views
0

我试图使用INDEX搜索而不是VLOOKUP,因为我想在单元格中显示一个字符串的所有关联单元格。例如,如果我的字符串是“Bob”,我希望能够在列B中搜索“Bob”的所有实例,然后生成列C中的所有相关值。这将在其他列中垂直显示。使用通配符(“*”)的Excel索引搜索

下面是一个website的公式,我目前使用要做到这一点:

=IFERROR(INDEX($B$1:$C$1188,SMALL(IF((D$2=$B$1:$B$1188),ROW($B$1:$B$1188)-MIN(ROW($B$1:$B$1188))+1,""),ROW(A1)),2),"") 

但是,我的数据是不完美的和非常大的,所以我希望能够使用通配符“',因此我搜索'Bo'&“”并返回列B中以“Bo”开头的所有值。该公式将被修改为:

=IFERROR(INDEX($B$1:$C$1188,SMALL(IF((D$2 & "*"=$B$1:$B$1188),ROW($B$1:$B$1188)-MIN(ROW($B$1:$B$1188))+1,""),ROW(A1)),2),"") 

不幸的是,这似乎并不奏效。我已经尝试过这么小的规模,但它仍然无法正常工作。

回答

0

使用此:

=IFERROR(INDEX(C:C,AGGREGATE(15,6,ROW($B$1:$B$1188)/(LEFT($B$1:$B$1188,LEN($D$2))=$D$2),ROW(1:1))),"") 

enter image description here

+0

我这个玩周围,它似乎并不奏效。但是,我确实意识到核心问题是'D $ 2 = $ B $ 1:$ B $ 1188'部分。返回一个数组,如{TRUE,FALSE,FALSE,TRUE等}。但由于某种原因,如果您执行了“D $ 2&”*“= $ B $ 1:$ B $ 1188',它将返回全部FALSE。 – sach2000

+0

我刚刚重新编辑了使用LEFT的答案。 –

+0

This Works!非常感谢 – sach2000