您可能想知道是否有一种方法可以返回列中的最后一个(不是最大的)值。例如,如果A1到A5中有值,那么您可能希望返回A5中的值。以后,如果在A6至A8中添加了值,则应返回A8中的值。

有两种解决方案。首先是使用如下公式:

=INDEX(A:A,COUNT(A:A))

该公式返回列中的最后一个数字值,条件是这些值始于(在这种情况下)A1。仅当列中的所有值均为数字时,此方法才有效。如果这些值是非数字的,或者如果有空白单元格与这些值混合在一起,则需要使用其他方法。一种方法是将以下公式复制到B列中,即可能包含值的单元格的右侧:

=IF(ISNUMBER(A2),IF(A2<>0,ROW(A2),""),"")

在这种情况下,该公式返回A中任何包含大于零的数值的单元格的行号。然后,可以使用以下公式检索A列中的最后一个值:

=INDEX(A:A,MAX(B:B))

此公式之所以有效,是因为它从B列返回最大的行号,然后将其用作索引以从A列返回相应的值。

如果您不想使用辅助列(如B列所示),则在A列中混合使用数字值和非数字值时,可以使用以下公式:

=LOOKUP(2,1/(1-ISBLANK(A:A)),A:A)

该公式可能需要一些解释。 ISBLANK(A:A)部分返回一个数组,该数组列出与A列中的单元格相对应的每个斑点中的FALSE值,该值在与A列中的空白单元格相对应的每个斑点中包含一个值和TRUE值。然后,将这些TRUE / FALSE值从1中减去,使其变为0/1值,而不是TRUE / FALSE值。

然后,通过将1除以0/1值来“反转”此数组,从而得到一个数组,该数组在A列中有值的任何地方都包含1,并在#DIV / 0处!如果列A的单元格为空白,则会出现错误。最后,LOOKUP函数在数组中查找值2。它不会找到它(数组中只有1,并且有错误),因此它返回列表中的最后一个“ 1”,从而从列中获取最后一个非空白值。

如您所知,有时返回列中的最后一个值会有些棘手。一种干净的方法是简单地开发自己的VBA函数,该函数返回所需的值。在这种情况下,您可以对函数进行编程以返回任何值,而不仅仅是数字值。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9008)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本:

链接:/ excel-Retrieving_the_Last_Value_in_a_Column [检索列中的最后一个值]。