跟踪短语列表中是否存在短语

时间:2019-07-09 19:52:14

标签: arrays excel excel-formula

我很难找到一个公式来完全满足我的需求。

我有两个列表,一个包含搜索短语(如“电视的声音条”),另一个包含单个术语,如(“电视”,“声音”,“酒吧”)的列表。

我的目标是查看单个词表中是否有与每个关键字匹配的搜索词组。

因此,对于“电视的条形音箱”,我需要将这些单词中的每一个都包含在术语列表中,以便它作为TRUE返回。而且,更复杂的是,如果我有搜索词组“ Soundbar”和“ Sound Bar”,那么如果两个词都在列表中,则它们都应该通过。

任何想法都是最好的方法。

我尝试了以下失败:

单个术语=“ TV”,“ Sound”,“ Bars”之类的术语列表 短语=搜索短语,例如“电视的条形音箱”

目标是创建一个公式,使“电视条形音箱”中的每个单词都表示“是”。

  1. =SUMPRODUCT(--ISNUMBER(SEARCH(individual terms,phrase)))=COUNTA(individual terms)
  2. =IF(ISNUMBER(SEARCH(phrase,individual terms)), "Yes", "No")
  3. =SUMPRODUCT(--ISNUMBER(SEARCH(individual terms,phrase)))>0

2 个答案:

答案 0 :(得分:2)

这将解析字符串并计算匹配项,然后将其与字符串中“单词”的数量进行比较。如果它们匹配,它将返回Yes

=IF(SUMPRODUCT(COUNTIF(D:D,TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX($XFD:$XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*999+1,999))))=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1,"Yes","No")

enter image description here

答案 1 :(得分:2)

假装您具有这样的数据设置:

enter image description here

将D列制作为Excel表(带有Insert-> Table)并命名为tblTerms。这样,您可以动态地从列表中添加和删除术语。

现在在单元格B2中并向下复制此公式:

=SUMPRODUCT(--(COUNTIF(tblTerms[Search Terms],TRIM(MID(SUBSTITUTE(A2," ",REPT(" ",LEN(A2))),LEN(A2)*(ROW(A$1:INDEX(A:A,LEN(A2)-LEN(SUBSTITUTE(A2," ",""))+1))-1)+1,LEN(A2))))=0))=0

请注意,您必须将“ Soundbars”分别添加到搜索词列表中。 Excel实际上没有任何方法可以识别复合词中的单个词,并且即使使用VBA,尝试执行此操作也非常麻烦。