使用匹配和最大公式来获取最后的值

下面的Excel公式可以返回第1行的最后一个值。我不知道它是如何工作的。 特别是,我不明白在公式中使用MATCH(MAX(1:1),1:1,1)-1的目的。

 =OFFSET(A1,0,MATCH(MAX(1:1),1:1,1)-1) 

这个公式似乎并不可靠。 有了这个数据:

1 | 2 | 3 | | 9 | 8 | 6 | | 17 | 6 | 4 | 10 | 1

该公式返回17.此外,它不适用于文本。

我build议:

 =LOOKUP(2,1/(LEN(1:1)>0),1:1) 

这将与文本或数字一起工作。 如果lookup_value大于被search数组中的任何项目,请参阅帮助LOOKUP以了解它是如何工作的。

Put =MATCH(MAX(1:1),1:1,1)到单元格中(不在第一行),并在第一行中input一些数字到随机单元格中。 MATCH函数将返回列索引号(例如,列B是2,列Z是26等)。

您正在使用OFFSET函数从A1移位,因此它必须比实际列索引号小1,因此为-1。

find第一行中最后一个数字或date的更好的公式是,

 =index(1:1, 1, match(1e99, 1:1)) 

OFFSET被认为是不稳定的¹; INDEX函数不是。


¹ 只要整个工作手册中的任何内容发生变化,挥发性函数就会重新计算,而不仅仅是当影响其结果的事情发生变化时。 易失性函数的例子是间接 , 偏移 , 今天 , 现在 , 兰德和兰德维恩 。 CELL和INFO工作表函数的一些子函数也会使它们变得不稳定。