Excel:搜索单元格以查看是否存在整列的单元格

时间:2017-07-29 05:12:15

标签: excel

无法解决此问题的公式。我可以在比较一个单元格时执行此操作,但无法弄清楚如何检查整个列。

我有两个专栏。 A列是关键字列表。 B列是城市列表。

我想比较B列的所有内容,看看是否在第a列中逐个单元格中包含了这些城市中的任何一个

如果我只使用=ISNUMBER(SEARCH($B$2,A2)),它会比较A列到B2列中的所有单元格,并且公式有效。但我在B列中有几百个单元格,我想比较A2。我想知道B列中的任何单词是否出现在单元格A2中

而不仅仅是$B$1我想比较整个B列(比如B:B但不起作用)并查看B列中是否有任何字词在细胞A2中。

enter image description here

希望这是有道理的。

1 个答案:

答案 0 :(得分:0)

由于性能问题,无法使用整个列B:B。但您可以在数组公式中使用列$B$2:$B$100的一部分。

示例:

enter image description here

英文符号公式:

{=SUM(--ISNUMBER(SEARCH($B$2:$B$67,A2)))}

这是一个数组公式。将其输入到没有大括号的单元格中,然后按 Ctrl + Shift + Enter 进行确认。然后会自动显示花括号。

工作原理:

在数组上下文中,ISNUMBER(SEARCH($B$2:$B$67,A2))$B$2:$B$67的所有值都放入公式中,并生成一个{TRUE, FALSE, FALSE, TRUE, ...}数组,该数组取决于该值是否在A2中找到。 --获取布尔值为数字0或1. SUM然后对数组求和。所以它计算出1的频率。

编辑:

这需要$B$2:$B$67填充值,否则将始终找到空单元格中的""。因此,为了更加灵活,我们应该检查$B$2:$B$1000中的单元格是否为空,然后将其排除。

{=SUM(($B$2:$B$1000<>"")*ISNUMBER(SEARCH($B$2:$B$1000,A2)))}