从一行中的最后3个非空白单元格中获取值

let*_*ngo 10 excel vba worksheet-function excel-vba

我目前有一个类似于以下的excel工作表(#代表空白单元格)

1   2   3   4   5   6   7
37  21  30  32  25  22  34
#   17  26  28  27  17  31
#   #   #   #   #   #   38
25  23  27  35  33  #   #
27  11  23  #   #   #   #
Run Code Online (Sandbox Code Playgroud)

在第8列中,我需要最后3个非空白单元格的总和(列数经常增加).

我需要实现的一个例子如下:

1   2   3   4   5   6   7       8
37  21  30  32  25  22  34      25+22+34=81
#   17  26  28  27  17  31      27+17+31=75
#   #   #   #   #   #   38      N/A
25  23  27  35  33  #   #       27+35+33=95
27  11  23  #   #   #   #       27+11+23=61
Run Code Online (Sandbox Code Playgroud)

我已经设法与LARGE功能非常接近,但显然这只给了我3个最大的,而不是最后3个非空白:

=(LARGE(C3:J3,1)+LARGE(C3:J3,2)+LARGE(C3:J3,3))
Run Code Online (Sandbox Code Playgroud)

Dic*_*ika 8

这是另一个:

=IF(COUNT(A2:G2)<3,"NA",SUM(G2:INDEX(A2:G2,LARGE(COLUMN(A2:G2)*(A2:G2<>""),3))))
Run Code Online (Sandbox Code Playgroud)

来自http://dailydoseofexcel.com/archives/2004/05/03/sum-last-three-golf-scores/

它标识要汇总的列,因为空白单元格为零,所以混合了多少并不重要.