平均excel中数据的绝对值,忽略空白(“”)单元格

Posted

技术标签:

【中文标题】平均excel中数据的绝对值,忽略空白(“”)单元格【英文标题】:Averaging the absolute values of data in excel, ignoring blank (" ") cells 【发布时间】:2016-04-07 21:05:16 【问题描述】:

我正在用 excel 构建一个预测方法比较工具。我必须使用 excel 来完成这个特定的任务。我需要比较不同类型的误差(MAE 平均绝对误差、RMSE 均方根误差等)以显示哪种方法效果最好。

我的错误(残差)组织如下:

Column 1   Column 2
  -0.5       1.2
  1.5        -1
   ""        ""          #  <==== here is what is causing the issue
   0.2       1.5

问题是有时数据集没有完全填充,如果没有活动,我已经内置了返回“”的“if”语句(我可以从“if”语句中得到一个空白单元格)在某个日期。 这不会导致计算平均误差或 RMSE 或预测时出现问题。

我尝试了以下公式(使用 ctrl+shift+enter 进行数组公式):

=average(abs(DATA-RANGE))
=sum(abs(DATA-RANGE))/count(DATA-RANGE) # I calculated the count in another cell

如果不是包含“”的单元格,我相信这些会起作用(根据在另一个地方找到的解决方案)

有什么想法吗?电子表格已经很大,我想在不创建新列的情况下执行此操作(即,创建一个新的 abs(DATA) 列来计算平均值)。

我也想在没有任何 VBA/宏的情况下制作它 - 它需要让除了简单的 excel 公式之外什么都不知道的人可以访问。

谢谢!

编辑 1: Here I have tried both Scott and Tom's method with my data. Both work! I even tried removing some of the formulas that provide the "" (so that true blank spaces were there), and it did not return #VALUE in either method. The formula in the edit box is what is being used to calculate the errors. Much obliged!

【问题讨论】:

我不知道该选择哪个答案,两者都有效!我想我会把它交给汤姆使用非 CSE(数组)公式。 【参考方案1】:

适用于空单元格和包含 ="" 的单元格的非 CSE 公式是

=SUMPRODUCT(ABS(N(+A2:B5))*(A2:B5<>""))/COUNT(A2:B5)

或者因为空的或有引号的单元格对总和没有贡献,

 =SUMPRODUCT(ABS(N(+A2:B5)))/COUNT(A2:B5)

See this useful answer 和this

【讨论】:

干得好,除了使用--+"" 转换为0 之外,我尝试了所有方法。虽然+ 我相信N() 是不需要的。 谢谢!它似乎需要 '+' 使它作为一个数组工作,并且 N() 将 "" 转换为 0,所以据我所知,这是两个不同的东西。【参考方案2】:

试试下面的数组公式:

=AVERAGE(IF(A2:B5<>"",ABS(A2:B5)))

作为数组公式,必须用 Ctrl-Shift-Enter 确认。如果操作正确,Excel 会自动在公式周围加上

【讨论】:

我发现如果 A1 等实际包含 =“”,则 CSE 有效,但第一个给出 #value!错误 @TomSharpe 我认为在这种情况下唯一的答案是 CSE 数组公式。至少以我有限的知识,我无法使 SUPRODUCT() 工作。它是 ABS(),它不喜欢空白单元格。

以上是关于平均excel中数据的绝对值,忽略空白(“”)单元格的主要内容,如果未能解决你的问题,请参考以下文章

Excel 数组,如果左侧相邻单元格为空白则忽略

如何将 Excel 列转换为忽略空白单元格的新范围

如何把excel中的空白转换为数字

excel怎么把一长列平均分成多列?

excel怎样用SUMIF来计算平均年龄

Excel表格的常用函数基本操作方式?