帮助粉丝解决问题,当时给出了一个解决方案,看似简单,仔细想想觉得不够严谨。
整理了几种带错误值求和求平均的方式,最后一种方法堪称王炸。希望这位粉丝能看到。
问题
众所周知,数据类型可以分为:正数,零,负数
众所周知,数据的错误类型也有好几种,常见的有:#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第二参数