当前位置: 首页 > 新闻动态 > 网络资讯

Excel按姓名去重并保留最新记录_Excel去重留新法【技巧】

作者:蓮花仙者 浏览: 发布日期:2026-01-11
[导读]:按姓名去重并保留最新记录需避免默认“删除重复项”只留首次出现的缺陷,可采用排序+删除重复项、辅助列+MAXIFS筛选、PowerQuery分组聚合或Excel365动态数组函数四种方法。
按姓名去重并保留最新记录需避免默认“删除重复项”只留首次出现的缺陷,可采用排序+删除重复项、辅助列+MAXIFS筛选、Power Query分组聚合或Excel 365动态数组函数四种方法。

如果您在Excel中需要按姓名去重,但希望保留每组姓名中最新的一条记录(例如依据“录入日期”或“时间戳”列判断新旧),则不能直接使用默认的“删除重复项”功能,因其仅保留首次出现的行。以下是实现按姓名去重并保留最新记录的多种可行方法:

一、排序+删除重复项组合法

该方法通过预先按时间降序排列,使最新记录排在每组姓名的最上方,再执行删除重复项操作,从而确保保留的是最新数据。

1、选中整张数据表(含标题行)。

2、点击【数据】选项卡,选择【升序】或【降序】前先点击任意时间列(如“录入日期”)的任一单元格。

3、再次点击【数据】→【排序】,在排序对话框中设置主要关键字为“录入日期”,次序选择降序,添加条件后点击确定。

4、重新选中数据区域,点击【数据】→【删除重复项】。

5、在弹窗中仅勾选姓名列(取消其他列勾选),确认勾选【数据包含标题】,点击【确定】。

二、辅助列+MAXIFS+筛选法

此方法不修改原始顺序,通过构建逻辑判断每条记录是否为其姓名组内时间最大值,从而精准标记最新记录,适合需保留原结构或后续复用的场景。

1、在空白列(如D列)第一行(D2)输入公式:=IF(C2=MAXIFS(C:C,A:A,A2),1,0)(假设A列为姓名,C列为日期)。

2、将该公式向下填充至全部数据行。

3、选中整表,点击【数据】→【筛选】,对D列启用筛选,只保留值为1的行。

4、复制筛选后的可见行,粘贴为数值至新工作表。

三、Power Query高级去重法

Power Query支持按分组聚合选取特定行,可直接按姓名分组后取每组中日期最大的那一条,全程非破坏性、可刷新、适用于大数据量。

1、选中数据区域,点击【数据】→【从表格/区域】,确认创建表并勾选【表包含标题】,点击【确定】进入Power Query编辑器。

2、在右侧“查询设置”窗格中,右键点击查询名称,选择【重命名】,设为易识别名称(如“姓名去重留新”)。

3、点击【转换】选项卡→【分组依据】,在分组对话框中:分组依据选姓名;新列名填“最新记录”;操作选所有行

4、点击新生成的“最新记录”列右侧的展开按钮,选择【使用还原行】→勾选除“姓名”外所有字段,取消勾选【使用原始列名作为前缀】。

5、点击【转换】→【排序】,对日期列(如“录入日期”)执行降序排序。

6、点击【转换】→【提取行】→【获取前1行】。

四、UNIQUE+XLOOKUP嵌套数组法(Excel 365 / 2025+)

利用动态数组函数组合,无需手动刷新或进入编辑器,即可实时生成按姓名去重且保留最新记录的结果表,结果随源数据变化自动更新。

1、在空白区域首单元格(如F1)输入以下公式:

=LET(names,UNIQUE(A2:A1000),dates,BYROW(names,LAMBDA(n,MAXIFS(C2:C1000,A2:A1000,n))),HSTACK(names,XLOOKUP(dates,C2:C1000,B2:B1000,"")))

2、按Enter确认,公式将自动溢出生成两列:姓名与对应最新记录的某字段(如B列为“联系电话”,C列为“录入日期”)。

3、如需返回整行数据,可将XLOOKUP部分替换为FILTER配合INDEX,例如:INDEX(FILTER($A$2:$E$1000,$A$2:$A$1000=n),1,0)嵌入相应位置。

免责声明:转载请注明出处:http://m.lexweb.cn/news/572291.html

扫一扫高效沟通

多一份参考总有益处

免费领取网站策划SEO优化策划方案

请填写下方表单,我们会尽快与您联系
感谢您的咨询,我们会尽快给您回复!