介绍
PowerBI团队4月开挂了,PowerBI教父发话:
兄弟们慢点,4天发布6项更新,你们不考虑下大家有时间学不,还有竞争对手会蒙圈的~
产品经理无奈回复:这不是老大你安排的嘛。
于是又来到了今天的Power BI Destkop更新。按照官方的话说,这是一个兴奋的月份,整个产品线都在更新,尤其是可以根据DAX表达式来动态定义可视化元素的标题,这仅仅是 DAX驱动可视化 的第一步。还包括跨报告钻取,一大堆连接器,M语言智能感知等特性更新。
我想强调的是:DAX驱动可视化。微软的原话是:基于表达式来配置可视化元素属性。如果是我们的老战友,应该知道我们经常提倡的DRY以及OCP原则,一切都应该是动态化的,这样才可以设计出最灵活的系统。不好意思,一不小心又替微软发明一个新词【DAX驱动可视化】,我们今天会来演示如果用这个思想构建PowerBI多语言系统。
实际案例,在跨国企业常常涉及到不同国家文化背景的人查看同一份报告,虽然英语是通用语言,但有时候确实需要定制成客户本地的,那么如何仅仅制作一次报告,不同的用户登录的时候看到的是不同的语言呢,答案是可以实现的。针对不同登陆用户显示不同语言,涉及到多个技巧的结合,不再展开,后续会做专题介绍,这里会结合4月更新来讲解如何1个度量值全动态搞定多语言显示。
DAX 引擎版本在本月已经升级到1465,值得一提的是SSAS 2017的版本是1400,也就是说 Power BI Desktop 中总会运行最新的引擎版本。
为了节省时间,一些点一点鼠标就知道的功能就简单说明,对于一些有重要意义的功能,我们做重点介绍并来给出实际商业场景。
强大的筛选面板
没错,这是本次很重要的更新,继续优化了筛选面板:
大家可以自己操作体验即可。
原来的可视化筛选,页面筛选,报告筛选全部从原有结构转移。由于功能的重复,可以理解,而且使用筛选器面板是一项正确的进化。
注意:通过测试发现,这个筛选面板功能还有一些小BUG和设计的不完美,在 Power BI Desktop 隐藏的筛选器发布后却显示了出来;另外,有时候使用筛选器是一种技巧,旁边的数字其实显得画蛇添足,例如:
这里仅仅是为了让用户选择截至到的日期,根本没有必要显示它们对应的元素个数。相信这些细节问题都可以得到修复。
可视化元素标题支持DAX表达式
我们可以使用DAX表达式来动态设置标题。例如微软给出的案例:
PowerBI 界面多语言实现方案
让我们来实现一个酷炫的商业场景吧。
英文界面:
中文界面:
为了实现这个界面,我们需要提前准备一个文本语言字典库,可以预先准备在Excel里,为了演示,我们直接用DAX来演示:
并建立一个配套的度量值:
然后可以直接为元素选择标题,非常方便:
其巧妙之处在于,这个标题是选出来的,而仅仅只需要一个度量值来动态选择标题。(请各自脑补DAX基础和PBI基础知识)
扩展思考:当不同的用户登陆Power BI Service后可以根据预先的配置而显示不同的语言吗?例如,日本人登陆显示日本,中国人登陆显示中文,答案是肯定的,限于篇幅,不再展开,关键技巧在于利用行级别权限控制的技巧来实现,相信各位战友已经可以猜测出如何实现了。
跨报告钻取
因为很多战友抱怨无法从一个报告直接跳转到另一个报告,因此,微软补充了这个缺陷,先来看看效果来理解是什么意思:
在一个工作区内有多个报告,注意,必须是在同一个工作区内,如下:
我们现在想从主报告到明细报告,可以这样:
然后就可以跨报告钻取到明细报告,如下:
注意,这是不同的两个报告哦。终于,现在可以在同一个工作区的不同报告中跨报告钻取。这个效果实现起来也非常容易,如果已经熟悉了跨页钻取,那这个原理是一样的,如下:
这需要打开跨报表快关即可。同时需要注意整个报告的选项也要允许此功能,如下:
以上。
跨报告钻取的问题
微软的产品经理肯定是累了,跨报告钻取到了明细报告,但点击返回按钮,没有任何反应,也就是说,可以从A到B,却回不去了。
这个大BUG绝对值得吐槽。有正常思维的产品设计都不会搞出来这种,虽然我们推崇PowerBI,但是对于多年的使用者也可以清晰地看到在产品设计上,很多设计存在推倒重来的问题,例如:
- 色彩饱和度
- 筛选面板
那回不去怎么办呢,自己想办法咯。
解决跨报告钻取无法返回 - 按钮导航
只能靠手工修复这个问题了,方法是:
- 将找到主页的URL
- 在子报告加一个按钮,并设置动作为URL
- 使用度量值赋予动态性
这同时利用了本月更新的功能,如下:
这个Web URL是:
这样就可以返回了,微软的产品不彻底,只能自己想办法来绕过问题。
URL跳转返回的瑕疵
上述方法确实是奏效的,但有个严重的问题:
- 它会打开新的页面再打开PowerBI网站进入原来的报告
- 原来的报告如果会被删除或重新设置,可能导致URL失效
尤其是打开新的网站页面绝对不能容忍的,这就是我们的态度,我们对带细节是追求极致的,在没有条件完成的时候也要创造条件来完成。
修复URL跳转返回的瑕疵
我们的价值观之一是:极致。而另一个就是:创新。我们继续思考,那么能不能继续利用跨报告筛选再钻取回原来的页面的,答案是肯定的,这里需要做一些特别的小设计,效果如下:
你以为我们真的做了一个按钮吗?非也。给你看看那是个啥:
我们完全凭借技巧和对 PowerBI 所有细节的精通,硬生生的把一个矩阵搞成看似按钮的样子,还很自然地提醒用户点【右键钻取返回】。这让我们不断深化对价值的看法:创新-极致 是Excel120-PowerBI战友联盟的核心驱动力。
我们猜测微软应该会弥补这个很明显的瑕疵,在微软没有弥补之前,至少我们有方法是可以绕过这个问题的。
新的DAX函数:ALLCROSSFILTERED
该函数用来去除位于多对多关系中,一个表对另一个表的筛选。微软其实并没有仔细解释这个问题,直接设置多对多关系,是一种相当复杂的存在,一般不建议使用,而对于那些对于DAX完全精通,愿意来挑战智商的人随意,不信你看:
不解释了,总之,能不用则不用。
Power Query M 智能感知
M 目前一共有798个函数(元素),很多战友问起如何学习M语言,其实非常简单,微软官方给出了 M 的语法,大概不到几十页,先理解基本的 M 语法,然后所有的函数就像单词一样,用到了查单词就可以了。
多年前,我们就提取了M的所有内置文档解释,如下:
M 语言的文档已经大部分内置在引擎的元数据中,可以直接提取参考。
而如今,M又支持并正式发布了智能感知,那么可以更方面的编写M表达式了,如下:
好了,大家可以自己体验的。
PowerBI Report Builder
本月更新了很多特性,但很多重要特性都必须使用 Power BI Premium,这个也是。但不妨碍我们来感受一下,首先在微软官方的博客可以免费下载这个工具,然后安装好运行:
我们将他与分析服务连接,并构建一个简单的报告,如下:
点击运行来预览:
没错,这是 Power BI Report Builder 第一次发布,还有超级多的BUG,但不影响我们去判断这个事物的未来,我们可以注意到,它可以导出成各种格式的文件,如下:
来看看BI工具排名第一的功能,导出到Excel,如下:
怎么样,惊呆了吧,这个功能不要甩 Power BI 好几条街,居然这个组件没有出现太多的BUG,它甚至居然可以保持分组和轮廓线,这就是企业级报告的基础。
然后,怎么看呢,目前无法直接发布到 Power BI Service,我们从云端来捞取这个报告,会得到:
这分明就是告诉你这是 Power BI Premium 的功能,不能用可惜了,不过 Power BI Premium 还没有落地中国,这给我们所有人都留有了学习的时间。
正如 Power BI 教父所言:
支持企业级报表没毛病,整个 Power BI 体系大厦,尚未建成,但可以充分看到微软对这个路线非常清晰,最后可以猜测的是,这个工具的名字叫:PowerBI Report Builder,足以说明微软的定位,因为PowerBI本身一直与SSRS有重复的定位,从这个名字可以看出,Power BI 将可以承载 SSRS 原有的职能,由 IT 创建企业级报告,而业务专家可以使用 Power BI Desktop 自助式分析,这个状态我们一起期盼。
总结
有一些个人认为不是很实用的功能并没有完全介绍,而我们花了很多精力研究并实践了:
- Power BI 多语言支持方案
- 跨报告钻取及返回方案
- Power BI Report Builder
更多细节可以参考微软官方的说明,DAX驱动可视化和跨报告钻取可以说是本次的最大亮点,大家可以多多实践,下期再战。