前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​一切为了业务方舒服:PowerBI中当用户选择切片器时,数据才显示

​一切为了业务方舒服:PowerBI中当用户选择切片器时,数据才显示

作者头像
陈学谦
发布2020-05-07 17:02:51
1.5K0
发布2020-05-07 17:02:51
举报
文章被收录于专栏:学谦数据运营学谦数据运营

本案例非常简单,不过,这是一个为满足业务方的刁钻需求而思考的整个过程,诸多报告中都可以采用相同或相似思路。

在几乎每一个报告中,都有切片器的存在,而这,也正是DAX能够展示其精髓的外部条件之一。

而报告,或者说可视化,永远是为业务而存活。

业务的需求是各式各样,多种多样,随时变化。只有深入了解业务,甚至是只有直接参与业务,才能够做出真正适合使用者的报告。

有这么一个业务需求:用户打开报告时,地区切片器默认是无选择的,此时树状图不显示数据;只有当用户选择了地区后,树状图展示分析结果。

我们知道,默认情况下,切片器不选择相当于全选。也就是说,此时,可视化对象会显示全部的数据:

所以,我们稍作调整,加一个判断条件,如果用户选择了一个“地区”的值,那么就显示这个度量值,否则为空白,即blank,那么度量值可以这么写:

代码语言:javascript
复制
销售额判定选择1 = IF(HASONEFILTER(data[地区]),[本期销售额],BLANK())

当然我们也可以这样写:

代码语言:javascript
复制
销售额判定选择2 = IF(HASONEVALUE(data[地区]),[本期销售额],BLANK())

结果是相同的。

用户没有进行筛选时,视觉对象是空的:

用户选择了一个地区后,可视化对象出现了数据:

可是这样仍然会出现问题,一旦用户想要查看两个及以上的地区,那么由于HAS“ONE”FILTER和HAS“ONE”VALUE只能是单选,所以结果还是空:

这显然不是我们想要的。

所以,我们需要一个新的函数:ISFILTERED来判断该字段是否被直接筛选:

代码语言:javascript
复制
销售额判定选择3 = IF(ISFILTERED(data[地区]),[本期销售额],"")

这样,当我们选择两个地区时,树状图是显示数据的:

这样,就达到了业务方的需求。

不过,有个小问题:当用户打开报告时,空白处的用户体验不是很好:

很有可能会让用户一时不知所措:

反应半天才会想起来在左侧点击地区进行筛选。

所以我们可以在空白的可视化对象处添加一个卡片图:

代码语言:javascript
复制
销售额判定背景 = IF(ISFILTERED(data[地区]),"","请至少选择一个地区")

这样,当用户打开报告时,映入眼帘的是让他选择一个地区,他就会很自然地在左侧找到地区切片器进行筛选,然后就能看到分析数据了:

这样是不是会让业务方感觉更舒服?是不是会更卖力地工作?是不是会为企业创造更高的价值?

记住,一切可视化都是为业务服务。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档