簡體   English   中英

匹配特定單元格中列的文本-Excel

[英]Match text from column within a certain cell - 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")

似乎應該有一種更簡單的方法來執行此操作,但我只是想不通。

(更糟糕的是,我不僅在文件名中標識了一個城市,而且還在尋找其他屬性來填充其他列)

有人可以幫忙嗎?

這是一種可行的方式,不是我自己的全部工作,而是其他來源的混雜:

假設工作表的設置如下:

起始位置

下面使用的公式, 必須使用 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)))

使用公式=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)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM