我知道如何在参考值上使用 Vlookup 通配符,但是如何在匹配的列索引上使用通配符呢?
我知道你可以这样做VLOOKUP("*Hello*",A4:G4,2,FALSE)
但是,如果你想要将一个单元格“Hello”与另一个单元格“Why, Hello there!”进行匹配,该怎么办呢(我想应该是相反的)
我的数据设置方式是,宏将询问是否A4
匹配workbook 1
,C2:C25000
以workbook 2
将 D 中的相应值返回给workbook 1
。想法是,当 A4 输入workbook 1
显示“Its DHS Here”时,我可以输入一个值,例如国土安全部在工作簿 2 的 C 列中,让其显示匹配。
这可能吗?
答案1
关键是通过连接来创建查找值*
,就像这样
=VLOOKUP("*"&A4&"*",'[workbook 2.xlsx]Sheet1'!$C$2:$D$25000,2,0)
(调整工作表名称以适应)
答案2
既然您已经计划使用宏,那么使用附加组件的可能性有多大?据我了解,您正在寻找模糊查找。Excel 创建了一个插件来完成这项任务这里。
答案3
我多次遇到过这个问题。您需要将通配符短语放在不同的单元格中。
单元格 B1 中有以下内容: *Hello*
您的新公式:VLOOKUP(B1,A4:G4,2,FALSE)
现在它应该可以工作了。
答案4
我的理解是,可能"lookup value"
是“为什么,你好!”或“DHS 在这里”,并且您希望它分别与查找范围内的“Hello”和“DHS”匹配。
鉴于此,对于公式方法,请尝试以下操作:
=LOOKUP(2^15,SEARCH(C2:C25000,A4)/(C2:C25000<>""),D2:D25000)
其中 A4 是查找值,根据需要插入工作簿/工作表引用。
这将找到最后的在 C2:C25000 中“匹配”,对于第一的您可以使用的匹配
=INDEX(D2:D25000,MATCH(1,INDEX(ISNUMBER(SEARCH(C2:C25000,A4))*(C2:C25000<>""),0),0))
注意:其中任何一个都可以匹配部分“单词”,所以如果 A4 是“Rat catcher”,那么它可能与“cat”或“catch”以及“rat”匹配 - 您可以添加空格以强制匹配整个单词,例如第一个公式可以适用于:
=LOOKUP(2^15,SEARCH(" "&C2:C25000&" "," "&A4&" ")/(C2:C25000<>""),D2:D25000)
尽管假设所有单词都由空格分隔且没有标点符号......