Excel – 从一系列string中挑选一个string

我有2列的数据,我需要用一个拉出另一个元素。

  1. 我有一个地址列表,整个地址在一个单元格中。 没有标准格式或分隔符。 我需要把城市拉出来,放到一个单独的牢房里。
  2. 我也有一个可以用来查询的城市列表。

我需要的公式是看看地址单元,然后把城市列在第二点的城市里。

作为一个例子,这里是前4行的地址;

42493 CLONSILLA ROAD DUBLIN 15 DUBLIN 2 Glenavey Rd Company Antrim Antrim Ireland Tesco Wexford Road Arklow na Wicklow Ireland GROVE SERVICE STATION BAYLOUGH ATHLONE WESTMEATH 

还有城镇名单的摘录;

 Duagh Dualla Dublin Duhallow Duleek 

对于第一行,公式需要浏览城镇并带回都柏林。 任何想法在这一个? 我有点失落!

我想你需要使用数组公式

 =IFERROR(INDEX($D$1:$D$5,MAX(IF(ISERROR(FIND(LOWER($D$1:$D$5),LOWER(A2))),-1,1)*ROW($D$1:$D$5))-ROW($D$1)+1),"") 

将在下面的例子中工作,你将需要使用Ctrl + Shift + Enter来确认公式,而不仅仅是回车 我做了

该公式是有点牵扯,我试图在下面分解:

  • $ D1:$ D $ 5 – 代表你想要find的城市

  • LOWER用于忽略大写字母v小写字母

  • FIND公式在列A中的文本中searchD1:D5中的任何一个,找不到那些错误

  • 如果找不到城市,ISERROR返回TRUE,否则返回FALSE

  • IF将TRUE(未find)转换为-1,将FALSE(find)转换为1

  • 然后乘以ROW号码,MAXselect最大号码,这是所find的城市的行号

  • INDEX然后根据收到的行号返回城市名称

  • 在没有find匹配的情况下,IFERROR返回空白