You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel重复行合并:将同姓名地址的多组数字整合至同一行

嗨,这个需求我刚好经常碰到,给你两种实用的解决办法,不管数据量大小都能搞定👇

方法一:使用Excel函数组合(适合中小数据集)

如果你的数据行数不算太多,用函数组合就能快速实现:

  1. 先提取唯一的姓名地址组合
    选中A:C列(Name、Surname、Address列),点击「数据」选项卡→「删除重复值」,确认后就会得到唯一的一行(比如示例里的John Doe NN)。

  2. 用数组公式提取对应数字
    在第一个唯一行的Number1列(比如D2单元格)输入下面的公式:

    =INDEX($D$2:$D$4,SMALL(IF(($A$2:$A$4=$A2)*($B$2:$B$4=$B2)*($C$2:$C$4=$C2),ROW($D$2:$D$4)-ROW($D$2)+1),COLUMN(A1)))
    
    • 注意:如果你用的是非Excel 365版本,输入完公式后要按 Ctrl+Shift+Enter 触发数组计算;Excel 365直接回车就行。
    • 公式逻辑:IF 筛选出和当前行姓名地址匹配的所有行,SMALL 按顺序提取这些行的位置,INDEX 对应取出Number列的值。
  3. 填充公式
    把D2单元格的公式向右拖动,直到出现#NUM!(说明没有更多对应数字了),这样就自动生成Number1、Number2、Number3列的内容。

方法二:使用Power Query(适合大数据量,高效省心)

如果你的数据有成百上千行,手动写公式太麻烦,Power Query是最佳选择,全程可视化操作:

  1. 导入数据到Power Query
    选中你的数据区域,点击「数据」选项卡→「从表格/区域」,勾选「我的表格有标题」,点击确定进入Power Query编辑器。

  2. 透视列合并数字

    • 按住Ctrl选中Name、Surname、Address三列
    • 点击「转换」选项卡→「透视列」
    • 在弹出窗口里:
      • 值列选择「Number」
      • 高级选项选择「不要聚合」
    • 点击确定后,所有对应数字会自动分到Number.1Number.2Number.3列(可以右键重命名成你想要的Number1、Number2)。
  3. 导出整理后的数据
    点击「关闭并上载」,Power Query会把整理好的表格放到新工作表里。之后如果源数据更新,只要右键点击表格→「刷新」就能自动同步结果,超省心!

实际效果对比

原数据:

NameSurnameAddressNumber
JohnDoeNN1165454
JohnDoeNN8789798
JohnDoeNN4564566

整理后:

NameSurnameAddressNumber1Number2Number3
JohnDoeNN116545487897984564566

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

火山引擎 最新活动