2017-09-14 69 views
2

我有这个公式的工作!错误(没有第一个IFERROR)。每条线都可以正常工作,当将它们分别放入单元中时,我可以对它们进行平均。如果我删除该公式的/ 6部分,然后用AVERAGE公式包装行,我会得到#VALUE!错误也是。平均不与间接式和空值

我该怎么办?

EDIT,溶液中发现的(感谢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的bascially代替数字 “6” 在原始代码中,并检查其该ISN的INSNUMER的(而不是IFERROR的)” t空白,所以任何0%或更高的值(实际值)将被计数,以达到真实的平均值。

+1

而不是'''尝试返回内部错误'0' –

+0

此外,请确保您没有任何单元格中的文字与间接引用。 –

回答

4

使用上述建议的意见,你可以使用IF(ISNUMBER())IFERROR()

=IFERROR(
(
(
IF(ISNUMBER(INDIRECT($A6&"!$E$15"));INDIRECT($A6&"!$E$15");0) 
+IF(ISNUMBER(INDIRECT($A6&"!$E$29"));INDIRECT($A6&"!$E$29");0) 
+IF(ISNUMBER(INDIRECT($A6&"!$E$43"));INDIRECT($A6&"!$E$43");0) 
+IF(ISNUMBER(INDIRECT($A6&"!$E$57"));INDIRECT($A6&"!$E$57");0) 
+IF(ISNUMBER(INDIRECT($A6&"!$E$71"));INDIRECT($A6&"!$E$71");0) 
+IF(ISNUMBER(INDIRECT($A6&"!$E$84"));INDIRECT($A6&"!$E$84");0) 
)/6);"") 
+0

谢谢!虽然我必须找到一种方法,让6成为任何数量不是空白的ISNUMER,而是0%或更高。在原始帖子中发布最终代码。 –

3

,而不是我开始想,你的“交错”是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")))) 

即在空白细胞产生真实的平均值不为零取代同时丢弃文本值。