在日常办公处理 excel 数据时,我们常会面对同一对象存在多条时间记录的情形,例如客户多次跟进、商品多次出入库、项目多个节点记录等。此时,往往需要精准提取出每个对象最晚发生时间的那条记录,用于报表生成、状态更新或后续分析。事实上,在 excel 中实现“按分组提取最晚时间记录”并不困难,两种主流方法可分别应对不同使用场景。

诊断并修复涉及公式、命名范围、Power Query 刷新、数据透视表、VBA/宏保存等问题的 Microsoft Excel XLSX 工作簿
排序筛选法:适合一次性处理、操作零门槛
该方法直观高效,无需编写公式,特别适合临时整理或对函数不熟悉的用户。
第一步:确认时间列已为 Excel 可识别的日期/时间格式。若显示为文本(如左对齐、无法参与计算),选中该列 → 点击「数据」选项卡 → 「分列」→ 直接点击「完成」即可快速转为标准时间格式。
第二步:全选数据区域(含标题行)→ 点击「数据」→ 「排序」→ 主要关键字选择时间列 → 排序依据设为“值”,次序选“降序”。排序后,每组内最新时间自动排至顶部。
第三步:若需批量提取各组首条(即最晚)记录,可在排序后点击「数据」→ 「删除重复项」→ 勾选分组列(如客户名称、商品编号、项目ID)→ 确认保留“第一行”。最终留下的即为每组最晚时间对应完整记录,全程仅需三步。

公式匹配法:适合动态更新、长期维护的数据表
当数据持续新增、需自动响应变化时,公式方案更具可持续性。
假设 A 列为分组标识(如客户名),B 列为时间戳,数据范围为 A2:B100:
- 在空白列 C2 输入数组公式:
=MAX(IF($A$2:$A$100=A2,$B$2:$B$100))
⚠️ Excel 旧版本(2019及之前)需按 Ctrl+Shift+Enter 确认;Microsoft 365 或 Excel 2021+ 支持动态数组,直接按 Enter 即可。下拉填充后,C 列将显示本行所属分组的最大时间值。 - 在 D2 输入判断公式:
=IF(B2=C2,"保留","")
下拉填充,再对 D 列进行筛选,仅保留标记为“保留”的行,即可精准定位所有最晚时间记录。
进阶推荐(Excel 365 / 2021+):使用MAXIFS与XLOOKUP组合,例如在 E2 直接写入:=XLOOKUP(1,($A$2:$A$100=A2)*($B$2:$B$100=MAXIFS($B$2:$B$100,$A$2:$A$100,A2)),ROW($A$2:$A$100)-1,"",0)
配合INDEX可一键返回整行数据,且随源数据增删自动刷新结果,真正实现“一次设置、长期有效”。


















