下面的Excel公式可以返回第1行中的最后一个值。我想知道它是如何工作的。特别是,我不明白在公式中使用MATCH(MAX(1:1),1:1,1)-1
的目的。
=OFFSET(A1,0,MATCH(MAX(1:1),1:1,1)-1)
答案 0 :(得分:1)
该公式似乎不可靠。有了这些数据:
1 | 2 | 3 | | 9 | 8 | 6 | | 17 | 6 | 4 | 10 | 1
该公式返回17.此外,它不适用于文本。
我建议:
=LOOKUP(2,1/(LEN(1:1)>0),1:1)
可以使用文字或数字。如果lookup_value
大于被搜索数组中的任何项,请参阅HELP for LOOKUP以了解其工作原理。
答案 1 :(得分:1)
将=MATCH(MAX(1:1),1:1,1)
放入单元格(不在第一行)并在第一行的随机单元格中键入一些数字。 MATCH function将返回列索引号(例如,列B为2,列Z为26等)。
您正在使用OFFSET function从A1转换,因此它必须比实际的列索引号少1,因此为-1。
在第1行中找到最后一个数字或日期的更好的公式是,
=index(1:1, 1, match(1e99, 1:1))
OFFSET被视为挥发性¹; INDEX function不是。
¹当整个工作簿中的任何内容发生变化时,不仅在影响其结果的某些内容发生变化时,挥发性函数都会重新计算。 易失性函数的示例包括INDIRECT,OFFSET,TODAY,NOW,RAND和RANDBETWEEN。 CELL和INFO工作表函数的某些子函数也会使它们变得不稳定。