我有一个按日期(从左到右)列出库存数量的表格,并且想要一个公式来返回最后一个零值出现的单元格。引用此结果将允许我通过索引该列的标题单元格(偏移 1 列,到最后一个零之后的第一个单元格 >1)来完成显示“自有库存以来...”的公式。)
我不想使用数组,也不想使用宏或 VBScript。
这是一个较长公式的一部分,我在该行中查找所有零值(“产品从未库存”),其中行中的所有值都 > 0(“产品从未缺货”),并且当前日期的库存为 0,但该行中至少有一个 >0 的实例(“产品自......以来一直缺货”)。公式的第三部分是通过使用 =LOOKUP(2,1/(A:A>0),A:A) 定位最后一个 >0 值,然后偏移一列来完成的。我有公式可以成功返回这些场景的结果。
对于第四种情况,我已经尝试了两个公式,其中最新日期的股票 > 0 但行中至少有一个零实例:
=LOOKUP(2,1/(A:A=0),A:A)
=INDEX(B:B,SUMPRODUCT(MAX((Item=0)*ROW(Item))))
但是,这些在查找一行中的最后一个零值时不起作用,只有在查找非零值时才起作用。
一些样本数据:
Jan-1 Jan-2 Jan-3 Jan-4 Jan-5
1 3 5 4 3 Result: Product never out of stock
0 0 0 0 0 Result: Product never in stock
3 1 0 0 0 Result: Product out of stock since [Jan-3]
1 2 0 4 3 Result: Product in stock since [Jan-4]
上面的第四种情况是我无法编写公式来完成日期输入。
到目前为止,我能够让它工作的唯一方法是重新排列所有日期列,使它们从右到左流动,然后使用 INDEX 和 MATCH 查找行中的第一个零实例以完成公式. 这也适用于查找第一个 >0 实例(对于缺货的第三种情况),我的备份解决方案也是如此。但是,这并不理想,因为出于绘图目的,我的日期应该从左到右显示。