当范围内的某些单元格不是数字时,如何计算数字的平均值?

当范围内的某些单元格不是数字时,如何计算数字的平均值?

我正在尝试根据我掌握的一些数据来计算解决问题的平均天数。

但在某些情况下,由于问题尚未解决,Excel 认为天数是 #NUM!

我正在使用 Excel 函数“DATEDIF”,它将给出两个日期之间的差值或 #NUM!我的数据示例如下。

当列中的一个值为 #NUM! 时,如何计算平均值?如何解决 DATEDIF 中未解决的问题/输出问题

在此处输入图片描述

答案1

如果所有错误都是“#NUM!”类型,则可以使用 AVERAGEIF 函数:

=AVERAGEIF(range,"<>#NUM!")

要忽略所有类型的错误,请使用 AGGREGATE 函数:

=AGGREGATE(1,6,range)

其中1代表平均值,6表示忽略误差。

另一种可能性是使用 IFERROR 函数来避免错误:

=AVERAGE(IFERROR(range,""))

还有一种方法使用 FILTER 来仅过滤真实数字:

=AVERAGE(FILTER(range,ISNUMBER(range)))

答案2

要么使用 AGGREGATE 计算平均值并忽略错误,要么将 DATEDIF 函数更改为

=IFERROR(DATEDIF(A2, B2, "D"),"")

AVERAGE 将忽略空白文本“”。我更喜欢后一种方法,因为 AVERAGE 更易于理解,并且您的工作表看起来更美观。

实际上我不喜欢使用 DATEDIF,而只是使用:

=IF(AND(ISNUMBER(A2), ISNUMBER(B2)), B2-A2, "")

答案3

你可以尝试这个:

在此处输入图片描述

  1. C27 中的公式:=AVERAGEIF(C22:C25,">=0")

或者数组(CSE)公式: {=AVERAGE(IF(ISNUMBER(C22:C25),C22:C25))}

  1. 数组(CSE)C28 中的公式: {=MEDIAN(IF(ISNUMBER(C22:C25),C22:C25))}

注意: 使用以下方式完成数组 (CSE) 公式Ctrl+Shift+Enter

答案4

我很喜欢旧的 IF 语句....尝试一下:

=IF(B22="","",DATEDIF(A22,B22,"MD"))

基本上,如果尚未完成,则不会花费时间来解决,这将允许计算平均值和中位数。

IF 语句运行的屏幕截图

相关内容