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

按ID匹配后遍历日期范围查找发票号的Excel公式求助

解决方案

问题分析

你的VLOOKUP公式仅能返回首个匹配ID对应的日期,无法遍历同一ID下的后续行日期进行范围校验,因此需要改用支持多条件筛选/多匹配的函数。

方案1:适用于Excel 365/2021(支持动态数组)

如果需要返回所有符合条件的发票号,使用FILTER函数:

=FILTER(Data!L:L, (Data!K:K=Sheet1!H2)*(Data!R:R>=Sheet1!Startdate)*(Data!R:R<=Sheet1!Enddate), "无匹配")
  • 参数说明:
    • Data!L:L:替换为你的发票号所在列
    • Data!K:K:ID所在列
    • Data!R:R:日期所在列(对应你原公式中VLOOKUP取的第8列)
    • 最后一个参数"无匹配":无符合条件数据时的返回值

方案2:适用于旧版Excel(不支持动态数组)

如果需要返回第一个符合条件的发票号,使用INDEX+AGGREGATE组合:

=IFERROR(INDEX(Data!L:L, AGGREGATE(15, 6, ROW(Data!K:K)/((Data!K:K=Sheet1!H2)*(Data!R:R>=Sheet1!Startdate)*(Data!R:R<=Sheet1!Enddate)), 1)), "无匹配")
  • 若要返回第N个匹配项,将公式最后的1改为ROW(A1),下拉公式即可依次获取后续匹配结果。

原公式问题说明

原公式:

=IF(AND(Startdate>=VLOOKUP(Sheet1!H2,Data!K:R,8,0),Sheet1!Enddate<=VLOOKUP(Sheet1!H2,Data!K:R,8,0)),"Potiential Match","out of range")

VLOOKUP的range_lookup参数设为0(精确匹配)时,仅会返回首个匹配ID对应的日期,无法对同一ID下的其他行日期进行校验,因此无法满足遍历需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:31:21