Excel 不使用间接公式和空白值的平均值

Excel 不使用间接公式和空白值的平均值,excel,excel-formula,average,Excel,Excel Formula,Average,我有一个公式: =IFERROR( ( ( IFERROR(INDIRECT($A6&"!$E$15");"") +IFERROR(INDIRECT($A6&"!$E$29");"") +IFERROR(INDIRECT($A6&"!$E$43");"") +IFERROR(INDIRECT($A6&"!$E$57");"") +IFERROR(INDIRECT($A6&"!$E$71");"") +IFERROR(INDIRECT($A6&"!$

我有一个公式:

=IFERROR(
(
(
IFERROR(INDIRECT($A6&"!$E$15");"")
+IFERROR(INDIRECT($A6&"!$E$29");"")
+IFERROR(INDIRECT($A6&"!$E$43");"")
+IFERROR(INDIRECT($A6&"!$E$57");"")
+IFERROR(INDIRECT($A6&"!$E$71");"")
+IFERROR(INDIRECT($A6&"!$E$84");"")
)
/6);"")
当这些IDirect中的任何一个返回空值时,我得到一个#值!错误(没有第一个错误)。每一行都很好,当把它们单独放在单元格中时,我可以很好地平均它们。但是,如果我删除此公式的/6部分,并用平均公式包装行,则得到#值!也有错误

我怎样才能继续

编辑,找到解决方案(感谢Mrig)

=IFERROR(
(
(
IF(ISNUMBER(INDIRECT($A7&"!$E$15"));INDIRECT($A7&"!$E$15");0)
+IF(ISNUMBER(INDIRECT($A7&"!$E$29"));INDIRECT($A7&"!$E$29");0)
+IF(ISNUMBER(INDIRECT($A7&"!$E$43"));INDIRECT($A7&"!$E$43");0)
+IF(ISNUMBER(INDIRECT($A7&"!$E$57"));INDIRECT($A7&"!$E$57");0)
+IF(ISNUMBER(INDIRECT($A7&"!$E$71"));INDIRECT($A7&"!$E$71");0)
+IF(ISNUMBER(INDIRECT($A7&"!$E$84"));INDIRECT($A7&"!$E$84");0)
)/
(
COUNTIF(INDIRECT($A7&"!$E$15");">=0")
+COUNTIF(INDIRECT($A7&"!$E$29");">=0")
+COUNTIF(INDIRECT($A7&"!$E$43");">=0")
+COUNTIF(INDIRECT($A7&"!$E$57");">=0")
+COUNTIF(INDIRECT($A7&"!$E$71");">=0")
+COUNTIF(INDIRECT($A7&"!$E$82");">=0")
)
);"")

COUNTIF基本上替换了原始代码中的数字“6”,并检查哪个INSNUMER(而不是IFERROR)不是空的,因此任何0%或更高的值(实际值)都将被计数,以获得真正的平均值

使用上述注释中的建议,您可以使用
IF(ISNUMBER())
而不是
IFERROR()


我一开始认为您的“交错”是14行,所以我使用以下数组公式:

=AVERAGE(IF(MOD(ROW(E15:E84), 14)=1, IF(ISNUMBER(INDIRECT($A6&"!E15:E84")), INDIRECT($A6&"!E15:E84"))))
。。。但你的“错开”不是一个一致的14行;最后一个间隙是13行,因此我将其修改为:

=AVERAGE(IF(ROW(15:84)={15,29,43,57,71,84}, IF(ISNUMBER(INDIRECT($A6&"!E15:E84")), INDIRECT($A6&"!E15:E84"))))

这将在丢弃文本值的同时,在空白单元格上生成一个真正的平均值,而不进行零替换。

请尝试在内部错误上返回
0
。因此,请确保您引用的任何单元格中都没有文本。谢谢!这是可行的,尽管我必须找到一种方法,使6成为任何数字的ISNUMER的不是空白,而是0%或更高。在原始帖子中发布最终代码。
=AVERAGE(IF(ROW(15:84)={15,29,43,57,71,84}, IF(ISNUMBER(INDIRECT($A6&"!E15:E84")), INDIRECT($A6&"!E15:E84"))))