首页 > 解决方案 > 检查单元格中的单词是否出现在列表中...但单词可能乱序

问题描述

我有一个职位白名单,例如系统工程师

我想检查单元格是否包含这些单词,例如

“系统产品工程师”很好,它包含“系统”和“工程师”,它具有“产品”的事实并不重要

系统管理器不行,因为它只包含“系统”而不是“工程师”

这可以用公式吗?

我努力了:

=IF(MATCH(job title,whitelist of job titles,0),"Yes")

这不起作用

我也试过:

=COUNTIF(职称白名单,职称)>0) 也不起作用

我也试过:

=IF(MAX(IFERROR(SEARCH(whitelist of job titles,job title,0))>0,"yes","no")

也不工作

**最后我尝试了:

=SUMPRODUCT(--ISNUMBER(SEARCH(whitelist of job titles,job title)))>0

如果系统工程师这两个词并排出现,但中间有一个像系统产品工程师这样的词,则这种方法将不起作用**

最后,我尝试将文本分列以将职位名称分解为其组成词,并在组成词的范围内使用这些公式。

非常感谢!

标签: excelexcel-2010

解决方案


如果您的工作白名单在一个单元格内,您可以检查职位名称是否有这些词,但顺序相同。核实:

在此处输入图像描述

D1 处向下拖动的公式为:

=IF(COUNTIF(C1;"*"&REPLACE($A$1;" ";"*")&"*")<>0;"Yes";"No")

它有效,但前提是职位名称包含相同顺序的单词。单元格 C5 和 C7 包含单词,但顺序相反,公式无法正常工作。在这种情况下,您需要以相反的顺序添加白名单,Engineer Systems

如果您的白名单位于单独的单元格中,则可以将 SUMPRODUCT 与 COUNTIF 结合使用来计算它们:

在此处输入图像描述

D1中的公式并向下拖动是:

=IF(SUMPRODUCT(COUNTIF(C1;"*"&$A$1:$A$2&"*"))=COUNTA($A$1:$A$2);"Yes";"No")

我认为最好的方法是将白名单单词放在单独的单元格中。


推荐阅读