Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 使用太少的值获取前n个值_Sorting_Error Handling_Excel 2010 - Fatal编程技术网

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

Sorting 使用太少的值获取前n个值,sorting,error-handling,excel-2010,Sorting,Error Handling,Excel 2010,假设我有10个单元格,A1到J1,其中包含数字,我想得到最大的3个单元格的平均值。我可以这样做: =AVERAGE(LARGE(A1:J1,{1,2,3})) 唯一的问题是如果值小于3。在这种情况下,我得到一个数字错误 我希望处理这个问题,以便如果我的范围内的非空白单元格少于3个(可以使用ISBLANK进行检查),例如只有2个,那么它应该只对这2个或多个单元格进行平均 这样做容易吗?您可以像这样使用iError =IFERROR(平均值(大(A1:J1,{1,2,3})),平均值(A1:J1)

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

=AVERAGE(LARGE(A1:J1,{1,2,3}))
唯一的问题是如果值小于3。在这种情况下,我得到一个数字错误

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


这样做容易吗?

您可以像这样使用iError

=IFERROR(平均值(大(A1:J1,{1,2,3})),平均值(A1:J1))

如果少于3,则将平均所有值(1或2)

如果您希望满足A1:J1完全不受欢迎的情况,即:

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


这将返回零(而不是#DIV/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")))