如何在Excel中提取日期列里最早的4个日期及对应行?
提取最早的4个日期及对应行数据的方法
假设你的原始数据中,「单元」列在A2:A6,「接收日期」列在B2:B6,以下是几种可行的解决方法:
方法1:SMALL函数配合INDEX/MATCH(兼容旧版Excel)
MIN函数只能获取最早的单个日期,要提取第2、3、4早的日期,SMALL函数是核心——它可以返回区域中第N小的数值(日期本质是数值):
- 获取第N早的日期:
=SMALL($B$2:$B$6, N),把N换成1、2、3、4,就能分别得到第1到第4早的日期。
要提取对应行的「单元」数据,分两种情况处理:
无重复日期的情况
直接用INDEX+MATCH组合公式:=INDEX($A$2:$A$6, MATCH(SMALL($B$2:$B$6, N), $B$2:$B$6, 0))
有重复日期的情况(如示例中19-Jan-24出现两次)
上面的公式只会返回第一个匹配的行,要提取所有重复日期对应的行,使用数组公式(输入时按Ctrl+Shift+Enter确认):=INDEX($A$2:$A$6, SMALL(IF($B$2:$B$6=SMALL($B$2:$B$6,N), ROW($B$2:$B$6)-ROW($B$2)+1), COUNTIF($B$2:$B$6,"<"&SMALL($B$2:$B$6,N))+1))
这个公式会自动跳过已提取的重复日期,确保每个对应行都能被选中。
方法2:动态数组公式(Excel 365/2021及以上版本)
如果使用支持动态数组的Excel版本,一行公式就能直接得到结果:=TAKE(SORT(A2:B6, 2, 1), 4)
SORT(A2:B6, 2, 1):对A2:B6区域按第2列(接收日期)升序排序TAKE(...,4):提取排序后的前4行数据,结果会自动溢出到单元格中。
方法3:手动排序筛选(快速操作)
如果不想用公式,直接手动操作更直观:
- 选中包含表头的所有数据区域(A1:B6)
- 点击「数据」选项卡的「排序」,设置关键字为「接收日期」,排序依据选「数值」,次序选「升序」
- 排序完成后,直接选取前4行即可。
内容的提问来源于stack exchange,提问作者Tristan B.
相关产品推荐
相关产品推荐

