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

如何通过按钮/宏生成电子表格中唯一的城市-数字配对列表?

Excel 两列(城市-数字)配对去重方案

一、公式快速实现(适合Excel 365/2021+)

你之前用的UNIQUE函数本身就支持多列范围,直接把两列的区域作为参数就能生成唯一的城市-数字配对:

  • 假设城市列是H5:H14,数字列是I5:I14,找个空白单元格(比如K5)输入公式:
    =UNIQUE(H5:I14, TRUE, FALSE)
    
  • 按回车后,公式会自动溢出显示所有不重复的城市和数字配对,同时保留两列的对应关系。
  • 参数说明:第二个TRUE表示区分大小写(不需要可以改成FALSE),第三个FALSE表示忽略空行(按需调整)。

二、VBA宏+按钮触发(适合所有版本,批量操作)

如果需要用页面按钮一键触发,或者Excel版本不支持溢出功能,可以写个简单的宏:

1. 编写宏代码

按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码(注意修改表格名称和数据范围):

Sub GenerateUniqueCityNumberPairs()
    ' 修改为你的数据所在工作表名称
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' 原数据区域:城市H列+数字I列,行范围5-14
    Dim sourceData As Range
    Set sourceData = ws.Range("H5:I14")
    
    ' 输出起始位置:比如K5开始
    Dim outputStart As Range
    Set outputStart = ws.Range("K5")
    
    ' 清空之前的输出内容
    outputStart.CurrentRegion.Clear
    
    ' 执行去重,Columns:=Array(1,2)表示按第1、2列(即城市和数字)配对去重
    sourceData.AdvancedFilter Action:=xlFilterCopy, _
        CopyToRange:=outputStart, Unique:=True
End Sub

注:如果原数据有表头,记得在AdvancedFilter里加Header:=xlYes参数,同时调整数据范围包含表头行。

2. 添加触发按钮

  • 点击顶部菜单栏的「开发工具」→ 「插入」→ 选择「按钮(表单控件)」
  • 在工作表空白处拖动画出按钮,弹出的窗口中选择刚才编写的GenerateUniqueCityNumberPairs宏
  • 修改按钮文字为「生成唯一配对」,以后点击按钮就能直接生成去重后的列表。

三、注意事项

  • 公式法的溢出功能仅支持Excel 365/2021及以后版本,旧版本请用宏或高级筛选
  • 宏运行前请保存工作簿为.xlsm格式(启用宏的工作簿),否则宏无法保存
  • 所有代码中的单元格范围请根据自己的实际表格调整,别直接照搬。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:32:12