至少对于我有限的 Excel 知识而言,这似乎是一个简单的概念,但我无法找到执行以下操作的公式。
我有两列文本,A 列和 B 列。我想在 B 列中搜索某人姓名的部分文本(列表中的第一个匹配项就可以)并返回 A 列中同一行的数据(电话号码(以文本输入))。
理想情况下,无论要搜索的列表是在任何列中(或可以轻松调整以返回任何列),这都会起作用,但要匹配的单元格始终位于 A 列中。
例子:
在 B 列中搜索““汤姆”",返回 A 列中对应的文本(本例中为 A6 中的值“555-555-5559”)
我认为这是应该做的事情。
=VLOOKUP("*"&TOM&"*",DATASHEETWITHARRAY'!A2:B10,1,1)
答案1
您可以改用 XLOOKUP。以您的示例为例,您可以执行以下公式:
=XLOOKUP( "TOM*", DATASHEETWITHARRAY!$B$2:$B$10, DATASHEETWITHARRAY!$A$2:$A$10,,2 )
如果您想使其更加通用,让它在单元格中查找与查找列匹配的内容,您可以这样做:
=XLOOKUP( D2&"*", DATASHEETWITHARRAY!$B$2:$B$10, DATASHEETWITHARRAY!$A$2:$A$10,,2 )
在哪里D2是您正在查找的单元格,数据表WITHARRAY!$B$2:$B$10包含你们的名字,并且数据表WITHARRAY!$A$2:$A$10包含您的电话号码。
XLOOKUP 支持通配符。如果您在文本末尾添加 *,它将查找以 TOM 开头的任何内容。将其放在开头 (*TOM),它将查找以 TOM 结尾的任何内容。您还可以使用 ? 将单个字符设为通配符 - 例如,您的 T?M 将查找 TOM 或 TIM(或 TAM 或 T4M ...)。
只需记住将 XLOOKUP 中的搜索模式设置为 2,即第 5 个变量。第 4 个变量显示当没有匹配时您想要返回的内容。如果您将其留空,它将返回 N/A 错误。