如果使用数组公式求平均值

using array formula to average if

我有一些细胞d1:d10。有些有数字,有些包含 """"=iferror(,"") 函数的结果,用于保留空白单元格。

我试图平均 d1:d10 但只包括不 "".

的单元格

我有 =AVERAGE(IF(D12:D51<>"",D12:D51)) 后跟 ctrl+shft+enter 但它仍然取所有单元格的平均值(本质上是求和并除以 10,我希望它求和并除以小于 10,具体取决于 "" 个单元格的数量)

我无法在 Excel 2013 年重现您的问题。 通常,Excel 的平均函数会忽略文本、空单元格和逻辑值。所以,下面的公式应该做你想做的事。

=AVERAGE(D1:D10)

函数中的 if 子句 returns 要么是一些数字,要么是 FALSE。同样,通常情况下,Excel 的平均函数会忽略 FALSE 值,因此它不应该像你说的那样表现。如果它以某种方式将布尔值转换为基于 Excel 版本的数值(FALSE 为零),您可以只提供一个字符串而不是布尔值,因此它必须忽略这些值:

=AVERAGE(IF(D1:D10<>"", D1:D10, "s"))

或者你可以不用平均函数计算平均值:

=SUM(IF(D1:D10<>"", D1:D10))/COUNT(IF(D1:D10<>"", D1:D10))