如何在数字行中查找零值的最后一个实例

时间:2019-03-29 05:18:36

标签: excel lookup sumproduct

我有一张表格,其中按日期(从左到右)列出了库存数量,并且想要一个公式,该公式将返回最后一个零值出现的单元格。引用此结果,将使我能够通过为该列的标题单元格编制索引(偏移量为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实例(对于第三个缺货的情况)也可以成功进行,因此我的备份解决方案也是如此。但是,这并不理想,因为我的日期应该从左到右显示,以便进行绘图。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

enter image description here