1、背景
客户ABC分析,一般的套路是在计算列中把客户ABC分类,便于后续维度使用。今天用度量值的方式写一个ABC的分类。先上效果图(作图是笔者弱项,将就看吧。)
效果图
2、数据源及关系
数据源
维度表:DIM;事实表:FACT如下
数据源
关系
ABC设置
A:[0,0.7]
B:(0.7,0.9]
C:(0.9,1]
3、上DAX
total
total:=SUM('FACT'[value])
R:排名
R:=IF(ISFILTERED(DIM[客户ID]),RANKX ( ALL( DIM[客户ID] ), [total], [total], DESC ))
累计%:客户value降序的累计百分比
分类:客户ABC的分类
分类:=VAR LJ =
CALCULATE (
[total],
TOPN ( 'DIM'[R], ADDCOLUMNS ( ALL ( DIM ), "R", 'DIM'[R] ), [R], ASC )
)
VAR T =
CALCULATE ( 'FACT'[total], ALL ( DIM[客户ID] ) )
VAR P =
DIVIDE ( LJ, T )
RETURN
IF(ISFILTERED(DIM[客户ID]),SWITCH (
TRUE (),
P > 0
&& P <= 0.7, "A",
P > 0.7
&& P <= 0.9, "B",
P > 0.9
&& P <= 1, "C"
))
A:A类客户的value
B:B类客户的value
C:C类客户的value
透视表效果
这里拉出的效果是按照客户维度的,需要按照排名维度来做一个排序及即可做图。
作图辅助表及作图
笔者作图美工弱项,将就看吧,功能基本达到,可以根据需求再美化。
4、总结
1、在计算列中计算出ABC分类,便于维度分析
2、本案例不用计算列即可,弊端是不能在维度中
3、客户ABC分析主要是要把客户rank搞定,根据输出的上下文写dax即可。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦