INDEX/MATCH/MIN函数使用问题:获取对应日期E列最小值的正确时间
解决Excel中获取日期对应最小值最后出现时间的问题
问题分析
你原公式用于匹配日期对应D列(High)最大值的时间时正常,但将D列改为E列(Low)、MAX替换为MIN后,返回的是当天最小值第一个出现的时间(10:00),而非你需要的最后一个出现的时间(15:00)。核心原因是MATCH函数默认正向查找,会返回第一个匹配最小值的位置,而非最后一个。
解决方案
方案1:Excel 365/2021及以上版本(动态数组支持)
使用XLOOKUP函数实现反向查找,直接返回最后一个匹配最小值的时间:
=XLOOKUP(MIN(IF($A$2:$A$10000=$F1,$E$2:$E$10000)),IF($A$2:$A$10000=$F1,$E$2:$E$10000),$B$2:$B$10000,,0,-1)
- 参数说明:
MIN(IF($A$2:$A$10000=$F1,$E$2:$E$10000)):计算指定日期(F1)对应的E列最小值- 最后一个参数
-1:设置从后往前查找,确保返回最后一个匹配该最小值的时间
方案2:兼容旧版Excel(无动态数组支持)
使用数组公式,通过MAX获取符合条件的最大行号,再用INDEX提取对应时间(输入时需按Ctrl+Shift+Enter触发数组计算):
=INDEX($B$2:$B$10000,MAX(IF(($A$2:$A$10000=$F1)*($E$2:$E$10000=MIN(IF($A$2:$A$10000=$F1,$E$2:$E$10000))),ROW($B$2:$B$10000)-ROW($B$2)+1)))
- 逻辑说明:
- 先计算指定日期的E列最小值
- 筛选出该日期下等于最小值的所有行号
- 取最大行号(即最后一次出现的位置),用
INDEX提取对应时间
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

