Excel - 从一系列字符串中挑选出一个字符串

Excel - Pick out a string from a range of strings

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

  1. 我有一个地址列表,其中整个地址都在一个单元格中。没有标准格式或分隔符。我只需要将城市拉出到一个单独的单元格中。
  2. 我还有一个可用作查找的城市列表。

我需要公式做的是查看地址单元格并拉出城市,该城市在我的第 2 点列表中。

这里以前4行地址为例;

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

以及城镇列表的摘录;

Duagh
Dualla
Dublin
Duhallow
Duleek

对于第 1 行,公式需要遍历城镇并带回都柏林。 对此有什么想法吗?我有点迷路了!

我想你需要使用 Array Formula

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

将在以下示例中起作用,您需要使用 Ctrl + Shift + Enter 来确认公式,而不是仅输入

公式有点复杂,我试着分解如下:

  • $D1:$D$5 - 代表你要查找的城市

  • LOWER 用于忽略大写 v 小写

  • FIND 公式在 A 列的文本中搜索任何 D1:D5, 那些没有找到的错误

  • ISERROR returns 如果找不到城市则为 TRUE,否则为 FALSE

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

  • 再乘以ROW数,MAX选择 最大数量,将是找到的城市的行号

  • INDEX 然后returns城市的名字根据行号吧 收到

  • 在没有找到匹配的情况下IFERROR returns一个空白