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

如何将Excel地址列中全大写的城市提取至新列?

提取地址中全大写城市名的可行方法

针对地址格式不统一、仅城市名为全大写的情况,以下是三种实用提取方案:

1. Excel 365/2021 公式法

假设地址数据在A列,在目标列(如B2)输入以下公式,下拉填充即可:

=TEXTJOIN(" ",TRUE,FILTERXML("<t><s>"&SUBSTITUTE(A2," ","</s><s>")&"</s></t>","//s[translate(.,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')=.]"))

原理:将地址按空格拆分为单个元素,通过FILTERXML筛选出与自身全大写形式完全一致的元素,最后用TEXTJOIN拼接成完整城市名。

2. Power Query 批量处理法

适合大量数据的批量提取,步骤如下:

  • 选中地址列,点击「数据」选项卡→「从表格/区域」(勾选「我的表格有标题」),进入Power Query编辑器
  • 点击「添加列」→「自定义列」,输入公式:
    =Text.Combine(List.Select(Text.Split([地址]," "), each _ = Text.Upper(_)), " ")
    
  • 点击「关闭并上载」,提取结果会生成新工作表,可将结果复制到原表格的新列中

3. VBA 自定义函数法(兼容全版本Excel)

适合Excel 2019及更早版本,操作步骤:

  1. 按Alt+F11打开VBA编辑器,右键点击当前工作簿→「插入」→「模块」
  2. 粘贴以下代码:
    Function GetCity(address As String) As String
        Dim arr() As String, i As Integer, result As String
        arr = Split(address, " ")
        For i = LBound(arr) To UBound(arr)
            If arr(i) = UCase(arr(i)) Then
                result = result & arr(i) & " "
            End If
        Next i
        GetCity = Trim(result)
    End Function
    
  3. 返回Excel界面,在目标单元格输入=GetCity(A2),下拉填充即可提取城市名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:35:20