查找字符串中是否存在子字符串列表中的任何一个
Find if any of a list of substrings is present in a string
我的问题是我有一长串标题需要根据关键字进行分类。有 10 个类别,每个类别有 2 到 16 个关键字。
我创建了一个 table 来像这样进行分析:
Title
cat 1
cat 2
etc.
How to foo the bar
Wax on, wax off
现在我想根据标题是否包含关键字的事实,用 1
和 0
填充 table。我将关键字和类别存储在单独的 table 中,如下所示:
cat 1
cat 2
cat 3
etc.
foo
on
how
bar
off
wax
我设法找到了一个有效的公式,但只有在类别范围内 没有空单元格 时它才有效。否则它总会找到一个匹配项。
我使用的公式是:
=IF(SUMPRODUCT(--(NOT(ISERROR(SEARCH([cat 1 2:4];[Title A2])))))>0;1;0)
[]
之间的部分当然是伪代码。
有没有办法调整公式,以便我可以为类别使用超大范围,这样我就不必为每个类别调整它们?
你可以试试:
B2
中的公式:
=--(SUMPRODUCT(--ISNUMBER(SEARCH(F:INDEX(F:F,COUNTA(F:F)),$A2)))>0)
当在较大的子字符串中找到子字符串时,这没有考虑可能的误报。
我的问题是我有一长串标题需要根据关键字进行分类。有 10 个类别,每个类别有 2 到 16 个关键字。
我创建了一个 table 来像这样进行分析:
Title | cat 1 | cat 2 | etc. |
---|---|---|---|
How to foo the bar | |||
Wax on, wax off |
现在我想根据标题是否包含关键字的事实,用 1
和 0
填充 table。我将关键字和类别存储在单独的 table 中,如下所示:
cat 1 | cat 2 | cat 3 | etc. |
---|---|---|---|
foo | on | how | |
bar | off | ||
wax |
我设法找到了一个有效的公式,但只有在类别范围内 没有空单元格 时它才有效。否则它总会找到一个匹配项。
我使用的公式是:
=IF(SUMPRODUCT(--(NOT(ISERROR(SEARCH([cat 1 2:4];[Title A2])))))>0;1;0)
[]
之间的部分当然是伪代码。
有没有办法调整公式,以便我可以为类别使用超大范围,这样我就不必为每个类别调整它们?
你可以试试:
B2
中的公式:
=--(SUMPRODUCT(--ISNUMBER(SEARCH(F:INDEX(F:F,COUNTA(F:F)),$A2)))>0)
当在较大的子字符串中找到子字符串时,这没有考虑可能的误报。