根据查找值删除单元格中的两个或多个单词

根据查找值删除单元格中的两个或多个单词

我想将 B2 中的单词“FaKe TaBLet”删除为新的期望结果(例如 C2 中的结果,即“great number two”),使用(据我所知)反向部分查找或其他公式而不是使用“Substitute”。

基本上,需要根据与 A5 中的查找列表的匹配(排除大写或小写)删除 B2 中的单词“FakE TaBLet”

我知道可以使用 =SUBSTITUTE 公式轻松删除它,我也试过了。问题是,我有大量不同的查找列表数据。

我已尝试过 =TRIM(LOWER(IFERROR(LOOKUP(1E+100,SEARCH($A$6:$A$9,B2,1),$A$6:$A$9),""))) 基于学习https://youtu.be/Xts7oC3agMs但如果查找词包含多个单词,则这显然不适用。

有人可以解释一下吗?任何答案都将非常感激!

多谢

 |   A          |         B                    |   C               |
1|              |   *Keyword                   |*Desired result    |
2|              | great FakE TaBLet number two | great number two  |
3|              |                              |                   |
4|              |                              |                   |
5|*lookup list  |                              |                   |
6| Fake         |                              |                   |
7| Fake Tablet  |                              |                   |
8| Fake Tab     |                              |                   |
9| Fake table   |                              |                   |

答案1

您的公式对我来说很有效(我使用的是 Excel 2016),可以返回要删除的字符串,包括要删除的字符串不止一个单词的情况。但是,由于它抓取了查找列表中的最后一个匹配项,因此您需要将查找列表从最短字符串重新排列为最长字符串,以确保它获得最长的匹配字符串:

*lookup list
Fake
Fake Tab
Fake table
Fake Tablet

完成更改后,此公式将返回最终的字符串:

=TRIM(SUBSTITUTE(LOWER(B2),TRIM(LOWER(IFERROR(LOOKUP(1E+100,SEARCH($A$6:$A$9,B2,1),$A$6:$A$9),""))),""))

该公式返回:

great number two

此公式确实存在限制,即只能找到并删除 A 列中的一个字符串。您可以通过在更多列中重复公式来查找和删除更多字符串,但考虑到您的查找列表“庞大”,找到所有字符串可能并不实际。如果您确实想查找并删除庞大查找列表的所有成员,我会使用 VBA。

相关内容