匹配某个单元格中列的文本 – Excel

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

| 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") 

似乎应该有一个更简单的方法来做到这一点,但我无法弄清楚。

(更糟糕的是,我不仅在文件名中标识了一个城市,我正在寻找其他属性来填充其他列)

谁能帮忙?

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

这不*****必须被数组input。

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

如果没有find匹配,而不是错误,则只需在列b中使用全名。

如果你想要的错误或期望永远不会有,那么你可以只使用:

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

在这里输入图像说明

这是一个有用的方式,不是我所有的工作,而是来自其他来源的一些混杂的东西:

假设表单设置如下:

起始位置

要使用的公式如下, 必须使用 Ctrl + Shift + Enterinput

 =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)))