商业数据分析通常都可以简化为对数据进行筛选、分组、汇总的过程,本文通过一个客户频次分布情况的示例来看看PowerBI是如何快速完成整个过程的。
假设数据为一个订单明细表,含有下单日期、客户名称、产品名称等数据,业务需求为:
根据订单表,计算出截止某个日期,购买次数为1-7次、8-14次、14-21次……的客户分别有多少?
看到要求就知道这是个分组问题,一般可以通过计算列或者度量值的方式来完成,之前PowerBI星球也分享过关于分组的文章:
这几种数据分组的方式,你应该掌握!
使用度量值进行分组统计
需要根据日期动态计算,那么就不能通过计算列的方式来实现,只能通过度量值来完成。
下面是PowerBI解决这个问题的过程,只需要简单的3个步骤。
1、数据建模
根据订单表提取出客户表,以及建立一个涵盖所有订单日期的日期表,分别与订单表建立一对多的关系。
因为要进行分组,所以还要建一个分组表,可以在PowerBI中"输入数据",手工建一个,数据如下:
更多建辅助表的方法请参考:Power BI 辅助表制作方式汇总
这个表不要与其他表建立关系,数据模型如下:
2、建立度量值
建立一个[客户数量]的度量值,如下图:
这个度量值中体现了筛选、分组和汇总的整个计算,值得你好好练习研究一下。
3,数据呈现
将这个度量值放入到矩阵中计算结果:
从这里可以看出购买15-21次的客户最多。
以上结果还可以通过日期切片器选择任意一个期间查看动态的每个频次的客户数量。
上面的结果有个小问题,矩阵总计行没有显示出来,为了让总计正确计算出上面明细行之和,可以通过之前介绍的总计修正的方法,参考:Power BI 总计错误的终极解决方案(二)
只需要再写个度量值:
客户数量 修正 =
SUMX(VALUES('频次表'[频次]),[客户数量])
就能得到正确的合计数了。
还可以通过图表查看每个订单日期的客户累计购买次数分布情况:
通过这个面积图,可以明显看出随着时间的推移,客户的复购次数越来越多。
这样就完成了任意一个日期的客户累计下单次数的分组统计,是不是很高效。
以上也是PowerBI数据分析的一个基本流程,从数据建模、DAX的运用到数据呈现,用户最终看到的只是最后一步:数据呈现,你也许觉得最重要的是第二步,写出那个度量值,从难度上来说,这确实需要一定的积累。
其实至关重要的起点在于建立模型,这是数据分析的基石。一个精心构建的模型不仅能够简化数据分析的过程,满足分析需求,还能使度量值的编写变得更加简洁和高效。
相反,一个糟糕的数据模型可能导致编写出冗长复杂的公式,甚至可能无法正确计算结果。因此,不要只关注公式怎么写,投入时间和精力来构建一个高质量的数据模型是很必要的,它将为后续的数据分析工作奠定坚实的基础。
关于PowerBI数据建模的基础知识请参考:Power BI数据建模,你遇到的各种问题,原来可以这样轻松解决
PowerBI星球