如何在Excel中检查单元格中的字符串列表?

时间:2018-06-22 14:28:54

标签: excel excel-formula vlookup

所以我在Excel中有两个列表。

第一个列表由大字符串组成。

第二个列表由较小的字符串组成。

我需要检查第一个列表,以查看第二个列表中的任何字符串是否包含在每个单元格中。

是否有一个excel公式?

我可以使用isnumber公式分别查找每个人

=IF(ISNUMBER(SEARCH("*dog*",A1)),"dog","No Dog")

但是我要经历几百遍,所以如果我可以做像VLOOKUP这样的事情,那会更好。

例如,如果第一个列表中的一个单元格与“无聊”联系,而第二个列表包含字母的前4个字母(a,b,c,d),则可以使用此类中的“真”值。然后,我想检查列表中的第二个单元格,如果那是“ Tempest”,那么我需要的是“ False”值,依此类推,依次类推。

2 个答案:

答案 0 :(得分:3)

A 列中使用短语,在 B 列中使用关键字,在 D1 中输入数组公式:

=LEN(TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH(B$1:B$10,A1)),B$1:B$10,"")))>0

enter image description here

数组公式必须使用 Ctrl + Shift + Enter 输入,而不仅仅是 Enter 键。如果正确完成此操作,则公式将显示在公式栏中,并带有大括号。

注意:

此公式的核心:

=TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH(B$1:B$10,A1)),B$1:B$10,""))

实际上列出了关键字:

enter image description here

EDIT#1:

如果您的Excel版本不支持TEXTJOIN(),请使用以下数组公式:

=LEN(IFERROR(INDEX(B:B,MATCH(TRUE,ISNUMBER(SEARCH($B$1:$B$10,A1)),0)),""))>0

enter image description here

或以下非数组公式:

=SUMPRODUCT(--ISNUMBER(SEARCH($B$1:$B$10,A1)))>0

答案 1 :(得分:0)

我个人更喜欢对范围+包含通配符的单元格执行COUNTIF

=COUNTIF(A1:A6,CONCATENATE("*"&B1&"*"))

img1

如果需要它返回布尔值,则可以使用:

=IF(COUNTIF(A1:A6,CONCATENATE("*"&B1&"*")) > 0, TRUE, FALSE)