总是获取某列数值中的最后5个数值之和
如下图1所示,在单元格区域A1:A10中有一系列数值,但有些单元格为空,使用公式求该区域最后5个数值之和,不计空格?
图1
先不看答案,自已动手试一试。
公式
在单元格C1中的数组公式:
=SUM(INDEX($A$1:$A$10,LARGE(IF(ISNUMBER($A$1:$A$10),ROW($A$1:$A$10)-ROW($A$1)+1),5)):INDEX($A$1:$A$10,MATCH(9.99E+307,$A$1:$A$10)))
当单元格区域A1:A10中的数值改变时,单元格C1中的值随之更新,如下图2所示。
图2
公式解析
公式中的:
LARGE(IF(ISNUMBER($A$1:$A$10),ROW($A$1:$A$10)-ROW($A$1)+1),5)
使用IF函数和ISNUMBER函数获取倒数第5个数值的位置。
其演算过程如下:
公式由
LARGE(IF({TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE},{1;2;3;4;5;6;7;8;9;10}),5)
变为
LARGE({1;2;3;FALSE;FALSE;6;7;FALSE;9;FALSE},5)
得到数字2,即倒数第5个数值的位置。
代入INDEX函数中,得到单元格A2。(与图2对应)
公式中的:
MATCH(9.99E+307,$A$1:$A$10)
得到区域A1:A10中最后一个数值单元格的位置,与图2对应,其返回值应该是9。
代入INDEX函数中,得到单元格A9。
这样,对于图2,最后5个数值所在的区域为A2:A9。
然后对其求和得到最终的结果。
小结
使用经典的INDEX函数和MATCH函数配合查找最后一个非空单元格。
体会公式中ISNUMBER函数、MATCH函数的使用技巧。
赞 (0)