【问题标题】:Excel: Find out if cell contains/includes value from a range of cellsExcel:找出单元格是否包含/包含一系列单元格中的值
【发布时间】:2018-05-03 20:35:04
【问题描述】:

我有一个职位列表 (A) 和一个短语列表 (B)。对于 A 中的每个标题,我想检查它是否包含来自 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 均未成功。

有没有可能做我想做的事?

解决方案

稍微修改了 Mrig 的公式:

=SUMPRODUCT(ISNUMBER(FIND(B$2:B$4,LOWER(A2)))*1)

【问题讨论】:

    标签: excel-formula


    【解决方案1】:

    试试这个

    =SUMPRODUCT(ISNUMBER(FIND($B$2:$B$4,$A2))*1)
    

    此公式将返回匹配的短语数。

    如果不想计数,可以将此公式放入IF

    =IF(SUMPRODUCT(ISNUMBER(FIND($B$2:$B$4,$A2))*1)>0,"Exist","Does Not Exist")
    

    参考图片

    编辑:在对Column A 进行降序排序后,我得到的是:

    【讨论】:

    • 感谢 Mrig 的帮助,它似乎找到了一些匹配项。当我准确地重新创建您的示例时,它会给出正确的答案。但是,当我按降序对 A 列进行排序时,C 列返回 2、2、1、1。我的真实世界 A 列是 60k 值,大多数应该有一个匹配项,但根据顺序只有 80-2k 个找到匹配项。
    • @baasoti - 请参阅我的回答中的编辑。这是我对Column A 进行排序后得到的输出。您是否可以共享样本/虚拟数据,以便我可以重现您的问题。
    • 感谢您回复我 - 弄清楚为什么它以前不起作用。我的排序问题出现了,因为我还对 B 列(包括一个空白单元格)进行了排序,以便它为 A 列中的每个单元格添加 1。它没有找到我的主要数据的所有匹配项的原因是因为它包含大写,并且匹配似乎区分大小写。我已将公式更新为: =SUMPRODUCT(ISNUMBER(FIND(Q$2:Q$343,LOWER(F2)))*1) 现在匹配 40k(到目前为止我检查过的都是有意义的)。非常感谢你的帮助,这个真的让我摸不着头脑!
    【解决方案2】:

    在col A中的每一行(从C2开始)将以下公式放入col C中

    =IF(ISNA(INDEX(B$2:B$4,MATCH(A2,B$2:B$4,0))),"","x")

    这是INDEXMATCH 函数的组合。 INDEX 基于计数返回一个范围内的单元格,在本例中由 MATCH 函数提供,该函数通过匹配条件字符串返回数组中单元格的位置。

    ISNA 函数用于在任何不匹配的单元格中隐藏“N/A”输出,并针对任何匹配的单元格显示“x”。

    查看here 以获得更深入的解释。

    更新

    根据下面的评论,为了查看 Col A 是否包含 Col B 中的文本(而不是直接匹配),然后在 col C 中为每一行使用这个公式:

    =IF(SUMPRODUCT(COUNTIF(A2,"*" & B$2:B$4 & "*"))>0, "X", "")

    【讨论】:

    • 感谢您的评论 - 不幸的是,当 A 列与 B 列中的值完全相等时,它似乎只标记“x”。
    • 啊,是的。我误解了你在哪里问的。请参阅答案的更新。这也是不区分大小写的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 2015-02-20
    相关资源
    最近更新 更多