You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中提取文本中的国家、州、城市至单独列?

从文本字符串提取国家/州省/城市到Excel列的可行方法

方法1:自定义VBA函数(适配多样文本格式)

如果你的文本格式不固定(比如国家/城市位置不统一、有额外修饰词),VBA自定义函数能更灵活匹配:

  1. 按Alt+F11打开VBA编辑器,插入新模块,粘贴以下代码:
Function ExtractLocation(textStr As String, listRange As Range) As String
    Dim cell As Range
    For Each cell In listRange
        If InStr(1, textStr, cell.Value, vbTextCompare) > 0 Then
            ExtractLocation = cell.Value
            Exit Function
        End If
    Next cell
    ExtractLocation = ""
End Function
  1. 回到Excel,假设国家列表在Sheet2!A:A,要提取A1单元格的国家,在B1输入:=ExtractLocation(A1, Sheet2!A:A)
  2. 同理,把州省、城市列表分别替换第二个参数,就能提取对应信息。
  • 优势:忽略大小写、能匹配文本中任意位置的关键词,比XLOOKUP容错性更强。

方法2:TEXTJOIN+FILTER+SEARCH组合公式(无需VBA)

如果你的关键词列表明确,用这个数组公式(Excel 365/2021支持):

  • 提取国家(假设国家列表在$D$2:$D$100):
=TEXTJOIN("",TRUE,FILTER($D$2:$D$100,ISNUMBER(SEARCH($D$2:$D$100,A1)),""))
  • 州省和城市提取只需替换对应的列表范围(比如州省列表$E$2:$E$100)。
  • 你之前用XLOOKUP失败大概率是因为:XLOOKUP默认精确匹配,若文本里的国家名带前后缀、大小写不一致,或关键词在文本中间位置,就会匹配失败。这个组合用SEARCH做模糊匹配,还能自动过滤无匹配的情况。

方法3:Power Query批量处理(适合大数据量)

如果要处理几百上千条数据,Power Query效率更高:

  1. 选中数据列,点击「数据」选项卡→「从表格/区域」(将数据转成表格)。
  2. 在Power Query编辑器中,点击「添加列」→「自定义列」,输入公式(以提取国家为例,假设国家列表在另一个表国家列表的国家列):
= List.First(List.Select(#"国家列表"[国家], (x) => Text.Contains([你的文本列名], x, Comparer.OrdinalIgnoreCase)))
  1. 同理添加州省、城市的自定义列,最后点击「关闭并上载」,结果会自动同步到新工作表。
  • 优势:批量处理、支持大小写忽略、后续数据更新只需刷新即可。

内容的提问来源于stack exchange,提问作者clannishduke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:45:27