关键词:帕累托、TOPN、动态、其他
实现效果
动态帕累托
- TOPN 控制显示个数,其余显示为其他
2.重点项目高亮显示
3.其他不计入占比
实现
- 构造辅助表
目的:显示一个“其他”项
客户+其他 =
UNION(
VALUES('DIM CUS'[CRM]),
{"其他"}
)
建立参数
建模-新建参数-值
两个
2.1 TOPN
2.2 Pareto% : 将 Pareto% 参数列的格式修改为百分比,这样在切片器中值就会以百分比的格式显示。建立度量值
0 VALUE 动态 客户 =
CALCULATE(
[VALUE ],
TREATAS(VALUES(('客户+其他'[CRM])),'DIM CUS'[CRM]))
1 排名 客户 =
RANKX(
ALLSELECTED('客户+其他'[CRM]),[0 VALUE 动态 客户])
2 VALUE 客户 TOPN和其他 =
VAR categary=SELECTEDVALUE('客户+其他'[CRM])
VAR topncategary=TOPN([参数 值],VALUES('DIM CUS'[CRM]),[VALUE])
return SWITCH(TRUE(),
[1排名 客户]<=[参数 值],[0 VALUE 动态 客户],
categary="其他",
CALCULATE([VALUE],
EXCEPT(ALLSELECTED('DIM CUS'[CRM]),topncategary
)))
3 占比 客户 TOPN =
VAR categary=SELECTEDVALUE('客户+其他'[CRM])
RETURN IF(categary="其他",BLANK(),
VAR CurItemValue = [2 VALUE TOPN和其他]
VAR Items = FILTER( ALL( '客户+其他'[CRM] ) , [2 VALUE TOPN和其他] >= CurItemValue )
RETURN CALCULATE( [2 VALUE TOPN和其他] , Items ) / CALCULATE( [2 VALUE TOPN和其他] , ALL( '客户+其他'[CRM] ) )
)
4 重点客户 =
IF( [3 占比 客户 TOPN] <= [Pareto% 值] , [3 占比 客户 TOPN] )
其他项显示在最后面
把度量值放到工具提示里,并按照这个字段降序排列:
5 TOPN和其他 排序 客户 =
IF(
NOT ISBLANK([2 VALUE TOPN和其他]),
CALCULATE(
[VALUE],
TREATAS( VALUES('客户+其他'[CRM]),'DIM CUS'[CRM])
)
)
X轴:新构建的辅助表的客户+其他
列:2 VALUE 客户 TOPN和其他
行:3 占比 客户 TOPN;4 重点客户
工具提示:5 TOPN和其他 排序 客户
把4的数据标签关掉&设置阴影
其实已经完成,但如果想看80%的个数有多少,新建度量值
6 重点客户 数量 =
MAXX(
ALL('客户+其他'),
IF( [3 占比 客户 TOPN] <= [Pareto% 值] && not ISBLANK([3 占比 客户 TOPN]) ,[1 排名 客户]))