【问题标题】:Match text from column within a certain cell - Excel匹配某个单元格内列中的文本 - Excel
【发布时间】:2013-04-26 23:48:58
【问题描述】:

我有一列不统一的几千个文件名。例如:

|     Column A     | Column B |
===============================
| junk_City1_abunc | City1    |
-------------------------------
| nunk_City1_blahb | City1    |
-------------------------------
| small=City2_jdjf | City2    |
-------------------------------
| mozrmcity3_somet | City3    |

我想在 A 列的文本中识别城市并在 B 列中返回它。

我想出了一个复杂的公式来解决这个问题,但是如果在 A 列中的新条目的文件名中添加更多城市,则很难调整。

这是一个例子:

=IF(ISNA(MATCH("*"&$W$3&"*",I248,0)),IF(ISNA(MATCH("*"&$W$4&"*",I248,0)),IF(ISNA(MATCH("*"&$W$5&"*",I248,0)),IF(ISNA(MATCH("*"&$W$6&"*",I248,0)),IF(ISNA(MATCH("*"&$W$7&"*",I248,0)),IF(ISNA(MATCH("*"&$W$8&"*",I248,0)),"Austin","Orlando"),"Las Vegas"),"Chicago"),"Boston"),"Las Angeles"),"National")

似乎应该有一个更简单的方法来做到这一点,但我就是想不通。

(更糟糕的是,我不仅要在文件名中识别城市,还要寻找其他属性来填充其他列)

谁能帮忙?

【问题讨论】:

  • 有两种不同的方法。第一个是识别像“_”和“=”这样的分隔符,如果它们遵循一个顺序并得到中间的字符串(城市)。第二个将是包含所有现有城市的另一列,并检查 A 列中是否存在一个
  • 为了清楚起见,您想检查每个单元格(在 A 列中)以查看它是否包含您的城市列表中的值之一,如果您希望在 B 列中使用该值?
  • Las Angeles -> Los Angeles
  • 我的问题可能重复Here
  • @SvenRojek 即使在这个只有 4 个的小列表中(问题指出有数千个),您已经遇到了 mozrmcity3_somet 的问题,因为它没有完全分离,而只是后分离。我们不知道其余的看起来如何。根据这个示例,我们最好解析数字 + 左边 4 个字符,但这会有很多漏洞。

标签: excel excel-formula


【解决方案1】:

使用公式=IFERROR(LOOKUP(1E+100,SEARCH($E$2:$E$11,A2),$E$2:$E$11),A2)

这 *****NOT***** 必须输入数组。

其中 $E$2:$E$11 是您要返回的名称列表,A2 是要测试的单元格

如果没有找到匹配项而不是错误,您将只使用 b 列中的全名。

如果您想要错误或期望永远不会出现错误,那么您可以使用:

=LOOKUP(1E+100,SEARCH($E$2:$E$11,A2),$E$2:$E$11)

【讨论】:

  • 这成功了!我为此花费了无数个小时。我感激不尽。
【解决方案2】:

这里有一个关于工作方式的回合,不是我自己的所有工作,而是来自其他来源的混搭:

假设工作表设置如下:

要使用的公式如下,这个必须使用 Ctrl+Shift+Enter

=INDEX($C$2:$C$8,MAX(IF(ISERROR(SEARCH($C$2:$C$8,A2)),-1,1)*(ROW($C$2:$C$8)-ROW($C$2)+1)))

注释版:

=INDEX([List of search terms],MAX(IF(ISERROR(SEARCH([List of search terms],[Cell to search])),-1,1)*(ROW([List of search terms])-ROW([Cell containing first search term])+1)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2018-12-16
    • 2018-10-20
    • 1970-01-01
    相关资源
    最近更新 更多