【发布时间】:2020-09-10 18:02:34
【问题描述】:
有没有办法在 Excel 中按每个单词拆分搜索并比较部分匹配项?
例如, 如果我的表包含:
example test phrase | result1
phrase test two | result2
excluded phrase | result3
如果我搜索:(使用 A1 作为搜索字段)
searchString = "*test phrase*"
searchItem = Application.Match(searchString, Worksheets("Table").Range("A2:A100"), 0)
这仅返回结果 1,但不返回结果 2,因为它正在查找整个短语,仅按输入的顺序。
输入搜索字符串“测试短语”后,我需要返回 result1 AND result2,不包括 result3。 (在这个例子中)
Excel/VBA 是否有任何内置方法可以做到这一点?
【问题讨论】:
-
使用 split 并迭代表,然后迭代单词并使用 instr 来查看它们是否存在。确保短语中存在所有单词。
-
搜索词组可以有两个以上的词吗?并且这些词是否必须彼此相邻(例如“短语测试二”是匹配但“短语测试二”不是匹配)?
-
嗨,Alex 很抱歉没有包括在内。是的,搜索可能会更长,但绝不应包含结果中未找到的单词。
-
我认为没有集成的方法可以做到这一点。您可以做的是迭代范围的单元格并根据需要使用 Instr 函数或 Like 运算符,并将结果添加到您选择的数组或集合中。
-
找到匹配项后你想做什么?你想写在某个地方,复制整行还是...?