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

san*_*ica 5 excel excel-formula

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

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

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

我怎样才能做到这一点?

笔记:

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

在此输入图像描述

Fel*_*ski 5

/sf/answers/2116981961/

如果您使用的是 Excel 2010 及更高版本, 则可以选择AGGREGATE 函数来忽略所有错误。

=AGGREGATE(1, 6, A1:A5)
Run Code Online (Sandbox Code Playgroud)

        AGGREGATE 排除错误


小智 4

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

\n

\xc2\xa0\xc2\xa0\xc2\xa0误差平均值

\n

F2:F3 中的数组公式为,

\n
=SUM(IF(NOT(ISNA(B2:B13)), (A2:A13>=7)*(A2:A13<=35)*(B2:B13<>"")))\n=SUM(IF(NOT(ISNA(B2:B13)), IF(B2:B13<>"", (A2:A13>=7)*(A2:A13<=35)*B2:B13)))\n
Run Code Online (Sandbox Code Playgroud)\n

F7:F8 中的数组公式为:

\n
=SUM(IF(NOT(ISNA(C2:C13)), (A2:A13>=7)*(A2:A13<=35)*(C2:C13<>"")))\n=SUM(IF(NOT(ISNA(C2:C13)), IF(C2:C13<>"", (A2:A13>=7)*(A2:A13<=35)*C2:C13)))\n
Run Code Online (Sandbox Code Playgroud)\n

数组公式需要用Ctrl+ Shift+来结束Enter\xe2\x86\xb5。一旦正确输入,如有必要,可以像任何其他公式一样填写它们。

\n

数组公式随着它们引用的范围的扩大而以对数方式增加计算负载。尽量将多余的空白行保持在最低限度,并避免完整的列引用。

\n

  • 当然,如果您只使用 ISNUMBER 检查,则可以消除空白检查,例如,对于平均值,可以如下所示: =AVERAGE(IF(ISNUMBER(C2:C13),IF((A2:A13&gt;=7) *(A2:A13&lt;=35),C2:C13))) (2认同)