如何通过按钮/宏生成电子表格中唯一的城市-数字配对列表?
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
相关产品推荐
相关产品推荐

