【问题标题】:Need to compare part of text in a range of cells to see if exists in another range of cells需要比较一个单元格范围内的部分文本,看是否存在于另一个单元格范围内
【发布时间】:2014-04-01 23:43:10
【问题描述】:

基本上...我在 B 列和 C 列中有 800 多个名称。我在 A 列中还有另外 700,000 多个名称。所以我想检查 A1 以查看是否在 B 和 C 的任何地方找到了部分文本,然后将答案输出到 D1。

例如... A1 中的名称为 mike trout。 b 或 c 中的某处可能是鳟鱼的名字。我希望 D1 输出 TRUE,因为 b 或 c 中的单元格包含在 A1 中找到的部分文本。如果在 b 或 c 列中找不到 Mike 或 Trout 的名字,我希望 D1 说 FALSE。这可以做到吗?我已经在网上搜索了几个小时,但无法找到正确的公式。谢谢。

【问题讨论】:

    标签: excel search if-statement


    【解决方案1】:

    这是此答案的稍微复杂的版本:https://stackoverflow.com/a/22754109/293078。两者都使用带有通配符的COUNTIF。这需要一个帮助列。下面是它的外观:

    B列有一个公式,在A列对应名称前后加了一个空格。B2中的公式为:

    =" " & A2 & " "
    

    这意味着我们只会匹配完整的单词,例如,“Ted”不会匹配“Teddy Bear”,但“Teddy”会。

    如您所述,C 和 D 列包含要搜索的名称。最后,在E2中,我们有这个array formula,必须用ctrl-shift-enter输入:

    =SUM(COUNTIF(B2,"* " & $C$2:$D$8 &" *"))>0
    

    将 B2 和 E2 中的公式向下拖动 700,000 行,然后观看奇迹发生。

    我原以为这会非常慢,但我只是尝试了 700,000 行,并在几秒钟内完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多