平均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%。