平均function
我有一个巨大的数据每月更新。 我想查看新的数据是否与以前的月份有所不同。
它看起来像这样:
month name data jan 551 2 jan 552 20 dec 553 12 jan 553 13 dec 554 9 okt 555 2 nov 555 2 dec 555 2,5
所以5个名字,长达4个月,不同的数据公关。 月,公关 名称。
我想制定一个公式,可以告诉我,如果其中一个名称与前几个月相比i%不同。 例如,我想说的是,dec中的“name”555相对于该客户的平均值相差25%。
谢谢,
安德斯
那么我想我不太好解释自己。 所以我会尽量做得更清楚。
我正在做这个excel函数。
所以我正在寻找的公式应该计算公关。 命名平均数字(avgN)。 这当然每个月都在变化。 公式应该find与平均值相比的月度差异。
我有大约2000行,900个不同的名字。
承担:
avgN = average amount for customer n currN = current (monthly) amount for customer n delta = tolerance expressed as a decimal (.25 in your example)
然后是公式
=abs((currN - avgN) / avgN)
将返回本月金额与平均值之间的百分比差异。 如果要testing这是否超出容差(delta),请使用上述expression式作为if
工作表函数的第一个参数,例如
=if(abs((currN - avgN) / avgN) > delta, "tolerance exceeded", "within tolerance")
从你的问题来看,你是不是想用VBA代码或工作表函数来做这件事。 如果前者,那么你会需要这样的东西
Sub checkTolerance() Dim percentageChange As Double Dim currN As Double Dim avgN As Double Dim delta As Double ' Set the values of the variables above from somewhere (worksheet cell, user input, etc.) percentageChange = Abs((currN - avgN) / avgN) If percentageChange > delta Then ' Do something when tolerance is exceeded MsgBox "tolerance exceeded" Else ' Do something when amount is within tolerance MsgBox "within tolerance" End If End Sub
=(SUM(($A$2:$A$9=A2)*($B$2:$B$9=B2)*($C$2:$C$9))-(SUM(($B$2:$B$9=B2)*($C$2:$C$9))/SUM(--($B$2:$B$9=B2))))/SUM(($A$2:$A$9=A2)*($B$2:$B$9=B2)*($C$2:$C$9))
这是一个数组公式,必须使用Control + Shift + Enterinput,而不仅仅是input。 如果你的第一行数据是以A2开始的,那么这个公式将进入D2,并填充到你有数据的地方。
SUM(($A$2:$A$9=A2)*($B$2:$B$9=B2)*($C$2:$C$9))
这部分总结了所有与您所在行相同名称和月份的数据。
(SUM(($B$2:$B$9=B2)*($C$2:$C$9))/SUM(--($B$2:$B$9=B2)))
这部分取与您所在行相同名称的所有数据的平均值(总和/计数),而不考虑月份。
十一五三,十二,你会得到-4.17%。 553的平均值为12.5,比平均值下降4.17%。