使用Match和Max公式获取最后一个值

时间:2016-07-18 17:56:52

标签: excel excel-formula

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

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

2 个答案:

答案 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不是。

¹当整个工作簿中的任何内容发生变化时,不仅在影响其结果的某些内容发生变化时,挥发性函数都会重新计算。 易失性函数的示例包括INDIRECTOFFSETTODAYNOWRANDRANDBETWEENCELLINFO工作表函数的某些子函数也会使它们变得不稳定。