Excel技术问询:查找累计需求超On Hand的首个缺货日期
解决Excel库存缺货首个日期识别问题
方法1:适用于Excel 365/2021(支持动态数组)
用SCAN计算累计需求,搭配XLOOKUP定位首个超库存日期:
=XLOOKUP(TRUE,SCAN(0,G13:XFD13,LAMBDA(a,b,a+b))>E13,$G$12:$XFD$12,"无缺货")
SCAN(0,G13:XFD13,LAMBDA(a,b,a+b)):逐列累计当前行从G列开始的需求数据,生成累计值数组SCAN(...)>E13:判断每一列的累计需求是否超过该行E列的「On Hand」库存XLOOKUP匹配第一个满足条件的位置,返回第12行对应日期;无缺货时返回「无缺货」
方法2:适用于旧版Excel(无动态数组)
用INDEX+MATCH结合数组公式(输入后按Ctrl+Shift+Enter触发):
=IFERROR(INDEX($G$12:$XFD$12,MATCH(TRUE,SUBTOTAL(9,OFFSET(G13,,0,1,COLUMN($G$12:$XFD$12)-COLUMN($G$12)+1))>E13,0)),"无缺货")
OFFSET(G13,,0,1,n):从G13开始,逐步扩展到n列的需求区域SUBTOTAL(9,...):计算扩展区域的累计需求和MATCH定位第一个累计和超库存的列位置,INDEX返回对应日期;IFERROR处理无缺货场景,返回提示文本
示例验证
以你提到的第13行为例,当G13至L13的累计需求超过E13的库存时,上述公式会直接返回第12行L列对应的日期,也就是首次出现缺货的时间。
内容的提问来源于stack exchange,提问作者JP96
相关产品推荐
相关产品推荐

