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

时间:2017-09-14 13:17:03

标签: 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&"!$E$84");"")
)
/6);"")

当这些IDIRECTS中的任何一个返回空值时,我得到一个#VALUE!错误(没有第一个IFERROR)。每条线都可以正常工作,当它们单独放入细胞时,我可以将它们平均化。如果我删除了这个公式的/ 6部分,然后用AVERAGE公式包裹行,我得到#VALUE!错误也。

我该怎么办?

编辑,解决方案(感谢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%或更高(实际值)的东西都将被计算到达到真正的平均水平。

2 个答案:

答案 0 :(得分:4)

使用评论中的上述建议,您可以使用if (process.env.NODE_ENV === 'production') { for (const config of module.exports) { config.devtool = '#source-map' // http://vue-loader.vuejs.org/en/workflow/production.html config.plugins = (config.plugins || []).concat([ new webpack.DefinePlugin({ 'process.env': { NODE_ENV: '"production"' } }), new webpack.optimize.UglifyJsPlugin({ sourceMap: false, compress: { warnings: false, }, output: { comments: false, }, }), new webpack.LoaderOptionsPlugin({ minimize: true }), new webpack.optimize.AggressiveMergingPlugin() ]) } } 代替IF(ISNUMBER())

IFERROR()

答案 1 :(得分: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"))))

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