呼,犯懒了快一个月没有更新学习记录了,想到八月都快到了,赶紧来写一篇吧!(写完都8月了。。。)
KPI的,我用的例子就是店铺销售每平米( 大家可能要问了,这也能算是难题吗?Sales/store size,小学二年级题目啊!Pivot做都可以!)
Sales的表格如下,记录了每一笔交易的日期、店铺、货品和金额;还有一个/季
3月开始营业的,那计算本年的面积的话就要加一个系数, 怎么样,还觉得简单吗?
VBA一定做得出来,但对于一个零售公司,全年上百万条的交易记录,恐怕庞大的计算量会令Pivot,肯定有 好,言归正传,看PP是如何简单解决这个问题的!
PP可以像Sales的Store的Sales的Date的 然后,养成一个好习惯,就像上学考试的时候,先把能写Measure的先写上,能得一分是一分!Sale:=SUM(Sales[Sales]) 求所有销售的和Store Size 0:=SUM(Store[size]) 求所有店铺面积
Sales per M2当然不是Store C和2010年还有开业,面积也被算进去了,这样670,显然不对喽。
比如我们选取一个时间段,比如C店铺为例,1日2月2012年结业,所以在C店铺从1日,开到了31日,共150×7/12=87.5. 我们定义我们选择的这个时间段,第一天是Last day;我们选的这段时间2011年的长度Period Length = Last day – First day +1
Open day,结业时间是 店铺在我们选择的这段时间开业的第一天是End Day = MIN(Last day, Close day);Duration = End Day – Start Day +1
WA ratio = Duration / Period Length 就是这段时间店铺 最后,Store Size = Store Size 0 * WA ratio
接下来就是简单的写公式了:Last day:=EOMONTH(MAX([Date]),0)(Date表里边了,所以用个函数得到最后一天;如果MAX([date])就可以了)Period Length:=VALUE([Last day]-[First day]+1)别忘加VALUE呢?因为-时间,格式不能变成数字,有待改进啊。。。。
Open day:=MIN([Open Date])MIN呢?因为有Store,4个值,MAX,Pivot返回的Total先不要看哦,目前 End Day:=if([Last day]>=[close day],[close day],[lastday])可惜MAX([Firs day], [Openday])这种格式,里边只能有一个量,还必须是LARGE或者IF代替一下吧。
Duration:=IF(VALUE([End Day]-[Startday]+1)<=0,0,VALUE([End Day]-[Start day]+1))这里有个判断,为了避免有时候会出现的错误:End Day<Start day,这只会发生在店铺完全没在这段时间营业的情况下,比如这样:
当然等效时间就是0啦。
WA ratio:=[Duration]/[period length]
C举例,就可以看到是这样啦:
把季度放进去,可以看得更清楚一些:
华为网盘附件:
【华为网盘】 3 Advanced Average.rar
3 Advanced Average.rar
(117.14 KB, 下载次数: 0)
|