答案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
答案4
我很喜欢旧的 IF 语句....尝试一下:
=IF(B22="","",DATEDIF(A22,B22,"MD"))
基本上,如果尚未完成,则不会花费时间来解决,这将允许计算平均值和中位数。
IF 语句运行的屏幕截图