excel – 容忍平均值(忽略#NA等)

我想计算一个范围内的平均值(图中的B1:B12或C1:C12),不包括:

>单元格不是数字,包括空字符串,没有内容的空单元格,#NA,文本等(此处为B1 B8:B12或C1 C8:C12).
>一个范围内相应单元格(此处为A1:A12)的单元格具有一个区间之外的值(此处为[7,35]).这将进一步排除B2:B3或C2:C3.
此时,列A中的单元格可能包含数字或没有内容.

我认为不可能使用任何内置的AVERAGE类功能.然后,我尝试计算总和,计数和除法.我可以计算计数(F2和F7),但不计算总和(F3),当我在范围内有#N / A时,例如

我怎样才能做到这一点?

笔记:

> G列显示F列中的公式.
>我无法过滤和使用SUBTOTAL.
> B8:C8包含没有内容的空白单元格,B9:C9包含空字符串.
>我正在寻找(非用户定义的)公式,即非VBA.

您可以通过使用基于嵌套IF的数组公式来完成此操作,以提供至少部分条件.当IF解析为FALSE时,它不再处理语句的TRUE部分.

F2:F3中的数组公式是,

=SUM(IF(NOT(ISNA(B2:B13)), (A2:A13>=7)*(A2:A13<=35)*(B2:B13<>"")))
=SUM(IF(NOT(ISNA(B2:B13)), IF(B2:B13<>"", (A2:A13>=7)*(A2:A13<=35)*B2:B13)))

F7:F8中的数组公式是,

=SUM(IF(NOT(ISNA(C2:C13)), (A2:A13>=7)*(A2:A13<=35)*(C2:C13<>"")))
=SUM(IF(NOT(ISNA(C2:C13)), IF(C2:C13<>"", (A2:A13>=7)*(A2:A13<=35)*C2:C13)))

需要使用CtrlShiftEnter↵完成数组公式.一旦输入正确,如有必要,可以像任何其他公式一样填写它们.

数组公式以对数方式增加计算负载,因为它们引用的范围扩展.尽量将多余的空行保持在最低限度,并避免使用完整的列引用.

https://stackoverflow.com/questions/29292272/tolerant-average-ignore-na-etc

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:excel – 容忍平均值(忽略#NA等)