这个公式如何返回范围中的最后一个非零值

我有一个Excel工作簿,分布在A1到A6范围内的1,4,0​​,1,0,0,0。

公式=LOOKUP(2,1/(A1:A6<>0),A1:A6)返回该范围中的最后一个非零元素: 100 。 足够巧妙地跨越4到100之间的0。

这不是我的工作簿,不能联系作者。

但是这个公式是如何工作的?

首先, 2可以是任何大于1的数字并且工作。

(A1:A6<>0)返回TRUE / FALSE,当用作分母时,分别变为1/0。

所以1/(A1:A6<>0)返回一个1和#DIV0错误的数组。 对于您的实例: {1,1,#DIV0,1,#DIV0,#DIV0}

Lookup会查找最合适的值,比如2的值大于数组中的值,但小于数组中的下一个或最后一个数字。 所以它find返回数组中的最后一个。

然后使用该相对位置4返回第三个标准范围中的第四个值:在这种情况下为A4中的值。