Excel二维表提取最近5个日期并获取对应行号的公式求助
提取符合条件日期对应行号的Excel公式方案
基础数组公式(适用于旧版Excel)
假设你已经用=SMALL(IF($C$1:$N$1000>=TODAY();$C$1:$N$1000);A1)提取了第k个符合条件的日期(A1单元格存k值,比如1、2),要获取对应行号,可使用以下数组公式:
=INDEX(ROW($C$1:$N$1000),SMALL(IF($C$1:$N$1000>=TODAY(),ROW($C$1:$N$1000)),A1))
注意:旧版Excel需按
Ctrl+Shift+Enter触发数组计算;新版支持动态数组的Excel直接回车即可生效
动态数组简化版(适用于Excel 365/2021)
如果使用支持动态数组的Excel版本,可结合MATCH或XLOOKUP实现更简洁的写法:
MATCH定位写法
=INDEX(ROW($C$1:$N$1000),MATCH(SMALL(IF($C$1:$N$1000>=TODAY(),$C$1:$N$1000),A1),$C$1:$N$1000,0))
XLOOKUP写法
=XLOOKUP(SMALL(IF($C$1:$N$1000>=TODAY(),$C$1:$N$1000),A1),$C$1:$N$1000,ROW($C$1:$N$1000))
逻辑说明
- 核心思路:先通过
IF($C$1:$N$1000>=TODAY(),ROW($C$1:$N$1000))筛选出所有符合日期条件的行号,再用SMALL提取对应第k个行号,最后通过INDEX或XLOOKUP返回结果。 - 若存在多个单元格是同一符合条件的日期,公式会按行号从小到大依次返回对应的行号,重复日期的不同行也能正确匹配。
内容的提问来源于stack exchange,提问作者krzyche
相关产品推荐
相关产品推荐

