Vlookup匹配搜索词的所有值,而不只是一个。

问题描述 投票:-2回答:3

因此,以下公式仅返回范围中的第一个值。我需要索引所有匹配的搜索结果而不是1。

=Vlookup("*" & B3 & "*",A:A,1,0)

SPREADSHEET LINK

excel google-sheets excel-formula vlookup gs-vlookup
3个回答
3
投票

使用Google表格使用查询:

=QUERY(A:A,"select A where A contains """ & B3 &"""")

enter image description here


由于您有Excel标签,因此请使用excel的此公式:

=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:INDEX(A:A,MATCH("ZZZ",A:A)))/(ISNUMBER(SEARCH($B$3,$A$2:INDEX(A:A,MATCH("ZZZ",A:A))))),ROW(1:1))),"")

复制/拖动它足以满足您的需求。

enter image description here


2
投票

另一种选择是

=FILTER(A2:A, SEARCH(B3, A2:A))

过滤掉可以找到字符串的值,并且还支持字符串中的通配符,或者可以扩展为匹配正则表达式。


0
投票

vlookup旨在始终为您提供一个结果。您的查询匹配然后它将返回值,否则它将返回错误。如果你想要所有的价值观,我会推荐一种不同的方法。

  1. 在列旁边创建一个列(在您的情况下为A:A),并用条件=IF($A1 = ("*" & B3 & "*", 1, 0)填充它。此列应填充0和1,具体取决于列B的内容。
  2. 使用A列中的值执行任何操作,并将新创建的列作为条件。例如,将A列中与您的条件匹配的所有值相加:=SUMIFS(A:A, B:B, "=1")

我希望这有助于简化您的Excel。如果您需要进一步的帮助,可以详细说明A和B列的内容以及您希望使用=vlookup()实现的目标。

© www.soinside.com 2019 - 2024. All rights reserved.