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

Excel按条件查找最早到期日期并填充I、J列的技术求助

解决Excel多条件匹配最早到期日及对应数量的问题

咱们先拆解你的需求核心:要为每条记录(对应主表A列的值),找出**匹配该记录、位置不是发货仓(G列≠2)**的库存明细里,到期日期(C列)最早的那条,然后返回它的到期日期(J列)和对应数量(I列)。你的原公式逻辑有几个关键问题,咱们一步步修正:

原公式的问题分析

你的公式IF(A2='Inventory Details'!A:A,IF('Inventory Details'!G:G=2,MIN('Inventory Details'!C:C)))存在三个核心漏洞:

  • 条件写反了:你要排除发货仓,应该是G:G<>2而不是G:G=2;
  • 未限定MIN的范围:直接用MIN('Inventory Details'!C:C)会返回整个C列的最小值,没有关联“匹配A2”和“非发货仓”的条件,结果完全不对;
  • 未处理数量提取:原公式只尝试返回日期,没有逻辑对应到该日期下的数量。

正确公式实现

假设Inventory Details表中:

  • A列是与主表匹配的关键字(比如物料号);
  • C列是到期日期;
  • G列是位置标识(2代表发货仓);
  • D列是库存数量(对应你要的100)。

1. J列(最早到期日):用MINIFS多条件求最小值

直接用MINIFS函数,它专门用于多条件下的最小值计算,语法清晰且高效:

=MINIFS('Inventory Details'!C:C, 'Inventory Details'!A:A, A2, 'Inventory Details'!G:G, "<>2")

这个公式的逻辑是:在Inventory Details表的C列(到期日)中,找出满足「A列等于主表A2」且「G列不等于2(非发货仓)」的所有值里的最小值,也就是你需要的10/01/2019。

2. I列(对应数量):匹配最早日期的对应数量

如果你的Excel是365/2021版本,推荐用XLOOKUP实现多条件匹配,简单直观:

=XLOOKUP(1, ('Inventory Details'!A:A=A2)*('Inventory Details'!G:G<>"2")*('Inventory Details'!C:C=J2), 'Inventory Details'!D:D)

逻辑:找到同时满足「A列匹配A2」「非发货仓」「到期日等于J列的最早日期」的第一条记录,返回对应的D列数量(即100)。

如果是旧版Excel,用INDEX+MATCH组合(注意旧版需要按Ctrl+Shift+Enter作为数组公式输入):

=INDEX('Inventory Details'!D:D, MATCH(1, ('Inventory Details'!A:A=A2)*('Inventory Details'!G:G<>"2")*('Inventory Details'!C:C=J2), 0))

验证结果

把这两个公式分别填入J2和I2,下拉填充后,就能得到你预期的:对应记录的最早到期日10/01/2019,以及对应的数量100。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:16:35