Excel中自定义平均偏差计算公式咨询
嘿,我看你在处理Excel里用户每日数据的平均偏差计算,先把你给出的样本数据整理清楚,方便咱们分析:
| User/Day | 1 | 2 | 3 | 4 | 5 | Total (AO) | Average (AP) | Expected Average Deviation |
|---|---|---|---|---|---|---|---|---|
| User 1 | 32 | 34 | 34 | 28 | 38 | 166 | 33.20 | 2.56 |
从样本里的数值能看出来,你要的这个“Expected Average Deviation”其实就是平均绝对偏差(MAD)——我验证了下User1的数值:先算每日数据和平均值(33.2)的绝对差总和:|32-33.2| + |34-33.2| + |34-33.2| + |28-33.2| + |38-33.2| = 1.2+0.8+0.8+5.2+4.8=12.8,再除以5天,12.8/5=2.56,和表格里的结果完全一致。
针对你说的数据要加载到第38天(对应C列到AN列),我给你两种实用的计算方法:
方法一:直接用Excel内置函数(最简便)
Excel本身就有专门计算平均绝对偏差的函数AVEDEV,完全匹配你的需求。比如对User1的前5天数据,输入公式=AVEDEV(C2:G2)(假设User1的第1天数据在C2单元格,第5天在G2),就能得到2.56;如果要计算到38天的话,直接把范围改成C到AN列就行:=AVEDEV(C2:AN2)。这个函数会自动处理所有非空单元格的绝对偏差平均值,省心又准确。方法二:手动编写自定义公式(适合理解计算逻辑)
如果你想自己拆解计算逻辑,不用内置函数,可以用这个组合公式:=SUM(ABS(C2:AN2-AVERAGE(C2:AN2)))/COUNTA(C2:AN2)
我给你拆解下每部分的作用:AVERAGE(C2:AN2):先算出C到AN列所有数据的平均值,对应你表格里的Average列C2:AN2-AVERAGE(...):让每个每日数据减去平均值,得到单个数据的偏差值ABS(...):把偏差值转换成绝对值,避免正负偏差相互抵消SUM(...):把所有绝对偏差值加起来,得到总偏差COUNTA(C2:AN2):统计C到AN列里有数据的单元格数量(用这个比直接写38更灵活,要是某天没数据也能自动调整)
如果你的“Expected Average Deviation”还有其他特殊的计算规则(比如不是平均绝对偏差),可以再补充说明细节,我再帮你调整公式~
备注:内容来源于stack exchange,提问作者Héctor Iglesias




