You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel 2010公式修正:匹配ID且晚于参考日期的最早日期与值

问题解决:匹配ID且晚于参考日期的最早值及对应日期

问题分析

原单元格C5的公式:

=IF(MAX(IF(F5:F15=$A5,G5:G15))<$B5,"",SUMIFS(H5:H15,F5:F15,$A5,G5:G15,MIN(IF(F5:F15=$A5,G5:G15))))

核心问题是未筛选晚于或等于B列参考日期的记录,直接取了该ID下所有记录的最早日期,导致返回不符合要求的旧数据(如ID7825返回2005年的0.1,而非2024年7月16日的2)。

解决方案

以下公式基于你提供的数据源范围(F2:F12为ID列,G2:G12为日期列,H2:H12为数值列;A2:A6为目标ID,B2:B6为参考日期),可直接下拉填充。

1. C列:匹配ID且≥参考日期的最早值

适用于Excel 365/2021(动态数组,无需组合键)

=LET(
    filtered_dates, FILTER(G$2:G$12, (F$2:F$12=A2)*(G$2:G$12>=B2)*(H$2:H$12<>"")),
    min_date, MIN(filtered_dates),
    IFERROR(INDEX(H$2:H$12, MATCH(1, (F$2:F$12=A2)*(G$2:G$12=min_date), 0)), "")
)

兼容旧版Excel(需按Ctrl+Shift+Enter作为数组公式输入)

=IFERROR(INDEX(H$2:H$12,MATCH(1,(F$2:F$12=A2)*(G$2:G$12=MIN(IF((F$2:F$12=A2)*(G$2:G$12>=B2),G$2:G$12)))*(H$2:H$12<>""),0)),"")

2. D列:对应C列值的最早日期

适用于Excel 365/2021(动态数组)

=LET(
    filtered_dates, FILTER(G$2:G$12, (F$2:F$12=A2)*(G$2:G$12>=B2)*(H$2:H$12<>"")),
    IFERROR(MIN(filtered_dates), "")
)

兼容旧版Excel(数组公式,按Ctrl+Shift+Enter)

=IFERROR(MIN(IF((F$2:F$12=A2)*(G$2:G$12>=B2)*(H$2:H$12<>""),G$2:G$12)),"")

公式说明

  • 先通过FILTER/IF筛选出同时满足「ID匹配」「日期≥参考日期」「数值非空」的记录
  • 用MIN提取筛选结果中的最早日期
  • 借助INDEX+MATCH定位该最早日期对应的数值
  • IFERROR处理无符合条件记录的场景,返回空值

测试验证

以ID7825、参考日期7/16/2024为例:

  • 筛选后符合条件的日期为7/16/2024、7/17/2024
  • 最早日期为7/16/2024,对应数值为2,完全匹配需求

内容的提问来源于stack exchange,提问作者BradS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:13:19