如何在 Excel 中标记字符串中特定子字符串的存在/不存在?

如何在 Excel 中标记字符串中特定子字符串的存在/不存在?

我们有一份与文档列表相关的关键字列表。该列表是根据文档文本中单词的频率计数创建的。我们试图根据关键字是否出现在文档名称中来为其添加权重。例如,如果我们有一个名为 的文档Agency_Solutions.doc,那么关键字agency在列表中的排序将高于telephone

事情变得更加复杂的是,根据计数,每篇文档的热门关键词都是thea、 。当然,所有这些都需要排除;我设置了一个包含 171 个“常用”单词的列,以供排除。anVLOOKUP

这是我的问题:如果我MATCH(WORD,TITLE,0)Agency不等于Agency_Solutions(或Agency Solutions;我曾经SUBSTITUTE创建过所有标题的“干净”版本)并且没有加权。如果我SEARCH(WORD,TITLE)加权,a因为a出现在 中Agency_Solutions。在这种情况下FIND将返回与 相同的结果SEARCH。摇滚。困难的地方。

我尝试了几种方法,但始终无法将关键字识别为文档名称中的独立子字符串。有什么想法吗?

编辑:这是一些数据

排除列表(粘贴至 A 栏)

a
an
is
the
what
when
who

文档、关键字、计数(B、C 和 D 列)

Keyboard_and_mouse_problems.txt the 15
Keyboard_and_mouse_problems.txt an  15
Keyboard_and_mouse_problems.txt a   14
Keyboard_and_mouse_problems.txt when    12
Keyboard_and_mouse_problems.txt system  8
Keyboard_and_mouse_problems.txt keyboard    8
Keyboard_and_mouse_problems.txt mouse   8
Keyboard_and_mouse_problems.txt when    9
Keyboard_and_mouse_problems.txt what    9
Keyboard_and_mouse_problems.txt who 8
Keyboard_and_mouse_problems.txt is  8
Keyboard_and_mouse_problems.txt phone   6
Keyboard_and_mouse_problems.txt help    6
Keyboard_and_mouse_problems.txt desk    5
Keyboard_and_mouse_problems.txt cable   4
Keyboard_and_mouse_problems.txt jack    4

Agency_Solutions.txt    X   2
Agency_Solutions.txt    c   1
Agency_Solutions.txt    on  1

然后,我的公式:

Col E   =IFERROR(VLOOKUP(C2,$A$2:$A$225,1,0),"notFound")    Is this in the exclusion list?
Col F   =IFERROR(VLOOKUP(C2,$A$2:$A$225,1,0),"")        Exclude this word
Col G   =IF(F2=C2,0,C2)                     Include this word
Col H   =IF(ISNUMBER(SEARCH(C2,B2)),100,0)          Title Weight
Col I   =IF(G2=0,0,D2+H2)                   Weighted Keywords
Col J   =IF(AND(H2=100,G2=0),"BAD","OK")            OK or Bad calculations

答案1

如果单词之间只有空格,则可以搜索两侧带有空格的单词,以避免部分匹配,例如

=ISNUMBER(SEARCH(" "&WORD&" "," "&TITLE&" "))

....尽管如果 TITLE 中有 _ 或 . 这样的标点符号,那么这种方法就行不通了.....但是你可以使用任意数量的SUBSTITUTE函数来替换带有空格的标点符号,就像这样

=ISNUMBER(SEARCH(" "&WORD&" "," "&SUBSTITUTE(SUBSTITUTE(TITLE,"_"," "),"."," ")&" "))

答案2

您应该尝试VLOOKUP使用通配符,例如,如果我们apple在中有A1=VLOOKUP("*"&A1&"*";B:C;2;0)则将匹配任何具有的字符串,apple无论其位置如何。有关更多信息,请参阅我的其他答案:https://superuser.com/a/552742/187330

提示:为避免区分大小写,请使用LOWER函数进行比较。

相关内容