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

如何在Excel中为城市生成可重复使用的唯一标识ID?

为重复城市分配唯一ID的Excel解决方案

基础公式法(兼容所有Excel版本)

直接用MATCH函数定位城市首次出现的位置,再拼接成目标ID格式:

  • 假设城市数据在M列,从第2行开始,在目标单元格(比如N2)输入公式:
    ="TEST-"&TEXT(MATCH(M2,$M$2:$M$1000,0),"000")
    
  • 把公式里的$M$2:$M$1000替换成你实际的城市列数据范围,下拉公式即可。
  • 原理:MATCH(M2,$M$2:$M$1000,0)会返回当前城市在列表中第一次出现的行号位置,同一个城市的首次位置固定,所以生成的ID也一致;TEXT(..., "000")是把数字转成带前导零的三位格式,确保ID是TEST-001、TEST-002这种统一格式。

你之前用的COUNTIF会统计到当前行为止的出现次数,所以重复行会递增数字,这就是不符合需求的原因。

Excel 365动态数组法(高效处理大数据)

如果用的是Excel 365/2021,用动态数组函数更省心:

  1. 先在空白列(比如O列)生成唯一城市列表:
    =UNIQUE(M2:M1000)
    
  2. 在相邻列(P列)给每个唯一城市分配ID:
    ="TEST-"&TEXT(SEQUENCE(ROWS(O2:O100)),"000")
    
  3. 回到原数据列,用XLOOKUP匹配对应ID(比如N2单元格):
    =XLOOKUP(M2,O2:O100,P2:P100,"")
    
    下拉后所有重复城市都会自动匹配到对应的唯一ID。

Power Query批量处理法(适合大量数据,无需手动下拉)

如果数据量很大,用Power Query一次性搞定:

  1. 选中城市列,点击「数据」选项卡→「从表格/区域」(Excel 2016及以后支持),弹出的对话框勾选「我的表格有标题」,进入Power Query编辑器。
  2. 点击「转换」选项卡→「分组依据」,设置:
    • 分组依据:选择你的城市列名称
    • 新列名:输入Grouped(自定义名称即可)
    • 操作:选择「所有行」
  3. 点击「添加列」→「自定义列」,输入公式:
    "TEST-"&Text.PadStart(Text.From(Table.PositionOf(#"分组依据", [Grouped])+1),3,"0")
    
    这个公式会给每个分组的城市分配唯一的带前导零的ID。
  4. 点击Grouped列右侧的展开按钮,选择展开所有行,然后关闭并上载回Excel,就能得到每个城市对应唯一ID的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 10:36:26