Excel中为同一名称的最新日期记录标记new/old的批量公式需求
Excel批量标记同名称下的最新/旧记录
假设你的数据结构如下:
- A列:名称(含重复值)
- B列:日期(需为标准可计算的日期格式,而非文本)
- C列:用于输出标记结果
方案1:适用于Excel 365/2021及以上版本(动态数组,一键批量应用)
在C2单元格输入以下公式,按下回车后会自动填充到所有数据行:
=BYROW(A2:A1000, LAMBDA(name, IF(B2:B1000=MAXIFS(B:B, A:A, name), "new", "old")))
- 替换
A2:A1000为你实际的名称数据范围(比如A2:A5000对应五千条记录) - 公式会逐行检查当前行的名称,对比该名称下的最大日期,匹配则返回
new,否则返回old
方案2:适用于旧版Excel(2019及以下)
在C2单元格输入以下公式,然后下拉填充到所有数据行:
=IF(B2=MAXIFS($B:$B, $A:$A, A2), "new", "old")
$B:$B和$A:$A是绝对引用,确保下拉时不会偏移列范围- 数据量较大时(数千条),建议将整列引用改为实际数据范围(比如
$B$2:$B$5000),提升计算效率
补充说明
- 若B列是文本格式日期,先通过
DATEVALUE函数转换或设置单元格格式为日期,否则公式无法正确计算 - 如果同一名称下存在多条相同的最新日期记录,所有匹配记录都会被标记为
new;若需仅标记其中一条(比如最早出现的),可调整公式:=IF(AND(B2=MAXIFS($B:$B,$A:$A,A2),ROW(B2)=MINIFS(ROW($B:$B),$A:$A,A2,$B:$B,B2)),"new","old")
内容的提问来源于stack exchange,提问作者Turpan
相关产品推荐
相关产品推荐

