我们有这样的销售数据:
我们希望只用一个饼图来统计销售数据。
用户通过切片器,选择是通过"支付渠道"来统计数据,或者是通过"销售门店"来统计销售数据。
实现方式如下:
1. 新建“字段参数”
2. 如图勾选上列"支付渠道",和列"销售门店"
3. 完成后,报表会自动添加一个切片器(这里我们切换成单选模式),数据窗口将出现[参数]表
4.报表放入饼图,拖入字段
5. 饼图就能根据切片器进行图例的动态显示了,这么做还有一点好处,不需要对原数据表进行计算,可以避免修改筛选上下文。
但是注意,有时候因为数据原因,这里会有个问题。细心的你应该也发现了,当按照"支付渠道"统计时,图例有为空的情况
这里不能简单的,添加过滤 支付渠道=NULL 的筛选条件来处理。这样做会造成,切到到"销售门店"后,门店1无法显示。因为数据里,门店1 没有支付渠道的数据:
解决方法:
1. 新建两个度量值,分别对销售表先过滤,再求和
L1_销售门店不为空 = SUMX(FILTER('销量表', NOT ISBLANK('销量表'[销售门店])), '销量表'[销售量])
L1_支付渠道不为空 = SUMX(FILTER('销量表', NOT ISBLANK('销量表'[支付渠道])), '销量表'[销售量])
2.再根据切片器(参数)的选择,动态调用上面的度量值
L2_销售数据 = SWITCH(TRUE(),
CONTAINSSTRING(SELECTEDVALUE('参数'[参数 个字段]),"销售门店"), [L1_销售门店不为空],
CONTAINSSTRING(SELECTEDVALUE('参数'[参数 个字段]),"支付渠道"), [L1_支付渠道不为空]
)
注意,对参数表进行selectedvalue,会获取字段的完整名称 ('销售表'[支付渠道]),所以这里要用是否包含来判断
3. 饼图使用度量值
\
4.好了,支付渠道不会再显示空了,而且不会影响 门店1 的显示