我将结合近期工作中总结出的分析思路,对PowerBi中【工作日/周末】分析进行总结,希望能够帮助到正准备着手进行【工作日/周末】分析的读者。
本文引用的报表,分析主体是商场,报表阅读者为商场管理者(收租度日)。
首先要明确一点,【工作日/周末】分析一般不会作为独立的专题报表出现,大多数时候,只是需要在做报表的时候顺便区分出【工作日/周末】的数据。当然,如果要深入挖掘,也无不可。
至于为什么要在报表中区分【工作日/周末】,原因当然是工作日和周末的数据有差异 ,而且往往差异不小。
接下来进入正题。
1. 分析日均
直接对比工作日总量与周末总量显然是不合理的,毕竟一周七天里有五天是工作日。
相较而言,“日均”是个不错的指标。按照我的习惯,定义以下细碎度量值:
零级基础度量:SlaesTotal、DaysCount
一级度量:SalesPerDay= DIVIDE([SalesTotal],[Days_Count])
二级度量:SalesPerDay_Workday、SalesPerDay_Weekend
SalesPerDay_Workday = CALCULATE([SalesPerDay],FILTER('Dim_Date','Dim_Date'[IsWorkDay]=1))
SalesPerDay_Weekend = CALCULATE([SalesPerDay],FILTER('Dim_Date','Dim_Date'[IsWeekend]=1))
展示度量:将其余度量值按需除以10000等数值,可以附带上单位,代码省略
这里插入一个思考,稍后讨论: 周末的销售额也可以由总销售额减去工作日销售额得到,再除以周末天数就是日均,这与上面代码段的写法在性能与使用上是否有差异?
在得到工作日与周末的指标后,我们可以绘制卡片图:
2.分析趋势
分析趋势首选折线图,这在当前是公认的。我们将时间轴、工作日销售额、周末销售额拖到折线图上,设置好形状与标签,就可以得到一个能够区分工作日与周末的折线图,它既可以反映出总体的走势,也能体现工作日与周末的差异:
请注意,在上面的图片中,工作日与周末是不连续的,周五到周六、周日到周一之间,都是断开的。事实上,你现在看见的不是一条时不时中断一下的折线,而是两条折线,一条浅蓝色,一条浅紫色,两条都是断断续续的折线。深究原因的话,需要回顾一下文章开头的度量值。简单点举例说,对于度量值SalesPerDay_Weekend,它只在周末时返回数值——即便在工作日期间,它也不会返回0,所以浅紫色线在工作日期间消失了。
鉴于二级度量值中的日期筛选发生在最外层,内部计算的是筛选后的销售额除以筛选后的天数,我们可以直接将度量值应用于横轴为月的图表上:
横轴为月
如果你希望获取连续的折线并将周末的数据点突出显示出来,那也不难:
连续折线
——这次放上来的度量值分别是SalesPerDay、SalesPerDay_Weekend,这个方案的缺陷很明显,它不仅只能适用于横轴粒度为“日”的走势图,而且会在工具提示方面出现一些小问题。
还有一种方法是用柱子为折线图划分区域以突出显示周末:
灰色柱子的度量值:
Const_Weekend = Var SalesPerDay_Max=MAXX(ALLSELECTED(Dim_Date),[SalesPerDay])
Var DaysCount_Weekend=CALCULATE(COUNT(Dim_Date[FullDate]),Dim_Date[IsWeekEnd]=1)
Return IF(DaysCount_Weekend=1,SalesPerDay_Max)/10000*1.618
(魔法数1.618,乘不乘无所谓,看心情)
3.拓展分析的维度
熟练运用以上基本图表技巧之后,就可以加入更多维度,比如,是不是所有行业都是周末比工作日销售更好呢?
当这个问题被提出时,BI工程师必须给出可视化的答案:
当然,这还不是真正的答案,关键在于你对销售更好的理解。已经可以看到,大部分行业是在周末时有更高的销售额,只有健身例外。但是,这些信息有什么用?即便将这些信息可视化了,但它们到底有什么用?它们能帮助管理者把商场运营得更好么?说实话,我看到这张图的第一反应是:好像餐饮业的日均销售额非常高?
4.拓展至其它度量
在上面最后一张图中,餐饮的日均销售额看起来非常高,表面原因是餐饮业在商场占的面积更大,根本原因是选择的度量粒度还不够细。这种高低之间的差别不能说完全没有意义,但确实意义不大,且高低差如此明显的度量,放在这里过于吸引眼球,阅读者的注意力都跑去餐饮日均销售额很高上面去了,很难注意到我们是在比较工作日/周末。业态间销售额高低的比较完全可以放在其它报表中——比如各业态面积、销售额占比之类的,用扇形图的形式来呈现。
至于现在的这个图表,我希望它最好既能够呈现不同业态的工作日/周末差异,也能够不过于吸引眼球地在业态间进行横向比较——换句话说,这些柱子的高低要在不同业态间具有可比性,而且比较起来不那么抢眼。
我们可以进一步分析其它度量值,不局限于日均度量值。比如,大额订单更容易在工作日还是周末发生、工作日与周末的日均客流量对比、工作日与周末的客单价对比、工作日与周末的销售笔数对比……
不要以为这种拓展是一件很容易的事,这并不是胡乱复制度量、拖拽图表可以搞定的事儿。你必须用心精选度量,不然你的报表最终就是由一大堆不太有意义的指标和趋势图堆砌而成,看起来还不错,也挺漂亮,可就是产生不了太大价值。
下面将要达成既能够呈现不同业态的工作日/周末差异,也能在业态间具有可比性,要回答的问题是“是不是所有行业都是周末比工作日销售更好”:
-
新增度量值
Sales_PerSM_PerDay = DIVIDE([SalesTotal],SUMX('Dim_Date',SUMX('Dim_Tenant',[AreaTotal_Renting]*[DaysCount_TenantRenting])))
该度量值的意义为“坪效”,单位是元/平米/天。通过使用SumX函数,已经将坪效计算到了目前数据源的最细粒度,它将具有最佳的横向可比性。同时,坪效也是商业地产中最有价值的指标之一,管理者最关心的是收租金,而租金很大程度上由坪效决定。
Sales_PerSM_PerDay_Workday = CALCULATE([Sales_PerSM_PerDay],FILTER(Dim_Date,Dim_Date[IsWorkDay]=1))
Sales_PerSM_PerDay_Weekend = CALCULATE([Sales_PerSM_PerDay],FILTER(Dim_Date,Dim_Date[IsWeekEnd]=1))
2.制作图表
横轴放业态,纵轴放工作日坪效与周末坪效,同时分别加上均线。
这样,我们就绘制出了一个既能表现工作日与周末间差异、又能无意间在不同业态之间对关键指标形成对比的图表。
如果嫌弃它太复杂,我们也可以弄一个简约点的:
两条折线的交点下方就是平时销售比周末好,这下直观了吧。不过,折线图的横轴上放业态类别还是有点怪怪的。柱形用于对比,折线用于趋势,这句话显然是应验了。
梳理一下整个过程:
首先,指标卡呈现关键指标;其次,在趋势图中利用各种手段区分出工作日与周末。做好这两点,已经足以在绝大部分场景下体现工作日与周末的数据差异了。
要充实报表内容,可以拓展维度与度量。这里,我结合一个具体需求——“是不是所有行业都是周末比工作日销售更好”,拓展了维度,并给出了一个错误示范。它应该能让你明白,增加分析的维度是充实报表内容的好手段,但也不能盲目增加,同时还一定要注意选取合适的度量。
最后,我又为“是不是所有行业都是周末比工作日销售更好”找出了更为合适的可视化解答。我希望这能让你明白,业务人员或者老板提出的需求,其关键词直接作为BI的度量并不好,比如明明是要比较工作日与周末的销售,最后怎么就辗转跑到坪效上去了呢?
技术靠读书、靠练;而维度与度量的选取,要靠对业务的理解,还要用心。
网友评论