0

我有一个完整地址的列表,每个地址都在自己的单元格中,我只想从中提取州的缩写。

  • 单元格 1:345 左 Ln,无处,TX 340598
  • 单元 2:839 右博士,格伦代尔 - NC 3498
  • 单元 3: 0983 Alphabet St,马萨诸塞州波士顿 - 23409

我有一个包含状态缩写的单元格列表/范围,我只是不知道如何在每个单元格中搜索所有 50 个缩写然后输出。搜索替换的另一个问题是,某些缩写自然会出现在单元格中,因为街道名称(例如上面第二个示例中的“Glendale”)中包含 AL,它是州缩写,但不是州。不幸的是,地址没有以统一的方式格式化,并且可以有不同的标点符号。

对于上面示例中的第二个地址,我可以输出 AL, NC,因为将其中有多个状态的少数情况分开并不难。

4

1 回答 1

1

在您的示例中,州缩写总是在两边都有一个空格,因此您可以使用此公式,假设地址在 A2 中,州缩写列表在 Z2:Z50

=LOOKUP(2^15,SEARCH(" "&$Z$2:$Z$50&" "," "&A2&" "),$Z$2:$Z$50)

复制公式以获取每个地址的结果

如果地址中的州缩写总是在大写字母中并且缩写列表总是在大写字母中,那么 FIND 函数将比 SEARCH 更可取,因为 FIND 不区分大小写,因此“误报”的可能性较小

更新:

鉴于您的评论 - 状态缩写可能不是大写,可能两边都没有空格......但大概“真实”状态将是单元格中的最后一个匹配项?要获得该公式,请尝试适用于任何版本的 Excel

=MID(A2,MAX(IF(ISNUMBER(SEARCH($Z$2:$Z$50,A2)),SEARCH($Z$2:$Z$50,A2))),2)

....或者这个适用于 Excel 2007 或更高版本

=MID(A2,MAX(IFERROR(SEARCH($Z$2:$Z$50,A2),"")),2)

这些是需要使用 CTRL+SHIFT+ENTER 确认的“数组公式”。将公式粘贴到单元格中,然后按 F2 键选择公式 - 然后在按 ENTER 的同时按住 CTRL 和 SHIFT 键。如果操作正确,您将在公式周围看到像 { 和 } 这样的花括号,并希望得到正确的结果。对第一个公式执行此操作,然后向下复制列。

如果您有 Excel 2010,则可以使用如下 AGGREGATE 函数使用非数组公式更简单地执行此操作:

=MID(A2,AGGREGATE(14,6,SEARCH($Z$2:$Z$50,A2),1),2)

于 2013-01-21T20:35:51.793 回答