帮助粉丝解决问题,当时给出了一个解决方案,看似简单,仔细想想觉得不够严谨。

整理了几种带错误值求和求平均的方式,最后一种方法堪称王炸。希望这位粉丝能看到。

问题


众所周知,数据类型可以分为:正数,零,负数

众所周知,数据的错误类型也有好几种,常见的有:#N/A,#NUM!,#VALUE!,#DIV/0!


错误类型只有#N/A,无论数据类型,用函数IFNA屏蔽错误值。

=SUM(IFNA(B2:E9,""))

=AVERAGE(IFNA(B2:E9,""))

IFNA


多种错误类型,无论数据类型,用函数IFERROR屏蔽错误值。

=SUM(IFERROR(B2:E9,""))

=AVERAGE(IFERROR(B2:E9,""))

IFERROR


错误类型只有一种,无论数据类型,SUMIF,AVERAGEIF屏蔽错误值。

=SUMIF(B2:E9,"<>"&"#N/A",B2:E9)

=AVERAGEIF(B2:E9,"<>"&"#N/A")

如错误值是#DIV/0!,条件设置为"<>"&"#DIV/0!"即可。

SUMIF,AVERAGEIF


无论错误类型,数据类型为正数,SUMIF,AVERAGEIF屏蔽错误值。

=SUMIF(B2:E9,">0",B2:E9)

=AVERAGEIF(B2:E9,">0")

SUMIF,AVERAGEIF


无论错误类型,无论数据类型,SUMIF,AVERAGEIF屏蔽错误值。

=SUMIF(B2:E9,"<9e307",B2:E9)

=AVERAGEIF(B2:E9,"<9e307")

9e307表示9*10^307,可以理解为Excel可以接受的最大数字。

SUMIF,AVERAGEIF

以上SUMIF和AVERAGEIF的用法,也可用于其他带IF/IFS的函数有,如:MAXIFS,COUNTIF等


无论错误类型,无论数据类型,AGGREGATE屏蔽错误值。

=AGGREGATE(9,6,B2:E9)

=AGGREGATE(1,6,B2:E9)

AGGREGATE

AGGREGATE第一参数9表示引用SUM函数功能

AGGREGATE第一参数

AGGREGATE第二参数6表示忽略错误值。

AGGREGATE第二参数