使用太少的值获取前n个值

时间:2013-01-07 12:50:03

标签: sorting error-handling excel-2010

假设我有10个单元格的范围,A1到J1,它们将包含数字,我想得到最大的3的平均值。我可以这样做:

=AVERAGE(LARGE(A1:J1,{1,2,3}))

唯一的问题是如果值少于3。在这种情况下,我得到一个数字错误。

我想处理这个问题,以便如果我的范围内有少于3个非空单元格(可以使用ISBLANK进行检查),例如只有2,那么它应该仅平均那些2或者许多。

是否可以轻松完成此操作?

2 个答案:

答案 0 :(得分:0)

您可以像这样使用IFERROR

=IFERROR(AVERAGE(LARGE(A1:J1,{1,2,3})),AVERAGE(A1:J1))

如果少于3

,那将平均所有值(1或2)

如果你想要满足A1:J1完全无人居住的情况,你可以添加另一个IFERROR,即

=IFERROR(IFERROR(AVERAGE(LARGE(A1:J1,{1,2,3})),AVERAGE(A1:J1)),0)

将返回零(而不是#DIV / 0!)

答案 1 :(得分:0)

试试这个 - 它很简单但是有效

=IF(COUNT(A1:J1) >= 3,AVERAGE(LARGE(A1:J1,{1,2,3})),  
                      IF(COUNT(A1:J1)>=2,AVERAGE(LARGE(A1:J1,{1,2})),  
                                         IF(COUNT(A1:J1) = 1, MAX(A1:J1),"Too few numbers")))