假设有一张销售数据表Sale:
报表上有一个切片器(Slicer)(下拉框样式),
当选择"第一"时,计算列[FirstSale]与列[Target]的百分比,
选择"第二"时,计算列[SecondSale]与列[Target]的百分比
选择"第三"时,计算列[ThirdSale]与列[Target]的百分比
实现方法:
1. 首先用一个表Slicer用来显示下拉框
2. 我们在Sale表新增三个度量值(也可以在其他表里新增度量值),
分别是列[FirstSale]与列[Target]的百分比,
列[SecondSale]与列[Target]的百分比,
[ThirdSale]与列[Target]的百分比。如下:
FirstMeasure = DIVIDE(SUM(Sale[FirstSale]),SUM(Sale[Target]))
SecondMeasure = DIVIDE(sum(Sale[SecondSale]),sum(Sale[Target]))
ThirdMeasure = DIVIDE(sum(Sale[ThirdSale]),sum(Sale[Target]))
3. 再新增一个度量值SwitchMeature用于切换(注意这4个度量值都要把格式设置为%):
SwitchMeasure = SWITCH(TRUE(),
SELECTEDVALUE(Slicer[Measure])="第一",[FirstMeasure],
SELECTEDVALUE(Slicer[Measure])="第二",[SecondMeasure],
SELECTEDVALUE(Slicer[Measure])="第三",[ThirdMeasure])
其意思为,当Slicer的Measure字段的选择值为“第一”时,输出度量值[FirstMeature],其他类推
4.添加一个卡片,显示SwitchMeature,然后就能通过Slicer控制度量值了
如果三个度量值不需要单独使用的话,其实还可以只用一个度量值就完成动态切换:
Measure = SWITCH(TRUE(),
SELECTEDVALUE(Slicer[Measure])="第一",DIVIDE(SUM(Sale[FirstSale]),SUM(Sale[Target])),
SELECTEDVALUE(Slicer[Measure])="第二",DIVIDE(SUM(Sale[SecondSale]),SUM(Sale[Target])),
SELECTEDVALUE(Slicer[Measure])="第三",DIVIDE(SUM(Sale[ThirdSale]),SUM(Sale[Target]))
)