我有一份职位名单(A)和短语清单(B) . 对于A中的每个 Headers ,我想检查它是否包含来自B的短语(任何短语,我不关心哪个) .
| 1 |-----Example Column A------|----Example Column B----
| 2 | Head of Marketing | Senior Developer
| 3 | Lead Product Engineer | Marketing Manager
| 4 | Sales Development | Sales Development
| 5 | Senior Marketing Manager |
在上面的例子中,我想知道A列中的最后两个单元格包含B列中的单元格 .
我在网上找到了很多关于如何反向的例子,使用*来查找某个值是否包含在一个范围内 . 我还发现以下三个例子作为类似于我的问题的解决方案,但没有一个适合我 .
{=MAX(ISNUMBER(SEARCH($B$2:$B$4,A2))+0)}
{=MATCH(A2,$B$2:$B$4&"*")}
=IFERROR(LOOKUP(2^15,SEARCH(B:B,A2),B:B),"")
我也尝试在B列中编写每个单元格的内容,以星号开头和结尾(高级开发人员等),尝试VLOOKUP,SUMPRODUCT,COUNTIF但没有成功 .
有可能做我想要的吗?
Solution
稍微修改了Mrig的公式:
=SUMPRODUCT(ISNUMBER(FIND(B$2:B$4,LOWER(A2)))*1)
2 回答
试试这个
此公式将返回匹配的短语数 .
如果您不想计算,可以将此公式放在
IF
中 .见图片以供参考
EDIT: 按降序输出
Column A
排序后,得到的是:将以下公式放在col C中col A中的每一行(从C2开始)
=IF(ISNA(INDEX(B$2:B$4,MATCH(A2,B$2:B$4,0))),"","x")
这是
INDEX
和MATCH
函数的组合 .INDEX
返回基于计数的范围内的单元格,在这种情况下,由MATCH
函数提供,该函数通过匹配条件字符串返回数组中单元格的位置 .ISNA
函数用于隐藏任何不匹配单元格中的"N/A"输出,并针对任何匹配的单元格显示"x" .请查看here以获得更深入的解释 .
UPDATE
根据下面的注释,为了查看Col A是否包含Col B中的文本(而不是直接匹配),请在col C中为每一行使用此公式:
=IF(SUMPRODUCT(COUNTIF(A2,"*" & B$2:B$4 & "*"))>0, "X", "")