熟悉 Power BI 的小伙伴,已经知道用 DAX 编写业务逻辑有些挑战的。微软通过两年的设计和开发,在日前举行的数据峰会中,首次对外透露这一特性。一起来看看吧。
注意 该特性尚未正式出现在任何 Power BI Desktop 产品中,但此次对外介绍,说明该特性已经进入预览阶段。截止目前,您无法在任何 Power BI 产品中体验该特性,但你可以明白这个特性的出现,将意味着什么。
这里列出了视图层计算与度量值和计算列的区别。
- 计算列
- 在表中定义
- 逐行计算后保存
- 在数据导入时触发计算
- 结果静态不再改变
- 度量值
- 在数据模型中定义
- 与行集合(筛选上下文)协同工作
- 在运行时动态计算
- 视图计算
- 在可视化对象上定义
- 视觉上下文中
- 在运行时动态计算
- 可以与可视化结构关联
为什么会有视图层计算
众所周知,DAX 并不直观。
根据 Power BI 产品经理收集到的用户普遍反馈:
- DAX 是有难度的。(准确地讲,筛选上下文很难直观理解。)
- DAX 的计算彼此独立,且只能在模型层面进行。
- 最常见的业务计算居然都很难直观做到。
- 快速度量值有一定帮助,但生成的 DAX 仍然难以理解,不好维护。
说白了,DAX 以公式的外表进行伪装,哄骗业务用户称这和 Excel 公式差不多,然后,业务用户就进坑了。DAX 的坑之深,需要近乎 600 页的文档书籍来描述,且还不足够全面。这导致精通 DAX 不亚于精通一门编程语言。快速度量值,对此来说只是鸡肋的存在。
要从根本上,让 Power BI 的使用更加简单,微软 Power BI 产品团队厚积薄发,将这一直观的视图层计算内置实现。
更直观的计算
那么,什么是视图层计算(Visual Calculation)?简单讲,就是通过眼睛已经看到的作为结果呈现的表,基于此再补充一些计算逻辑,衍生出该表的补充结果。
可以看出上述使用了 RuningSum 函数,就可以实现直观的积累求和,而不必使用 DAX 在模型层计算。而使用这函数的时候,可以直接通过辅助的工具来点击设置,非常直观。
当想计算两列的差异的时候,也不必再定义新的度量值,而是可以:
直观地让两列相减就可以得到结果。
再比如要定义复杂的 A 列本行减去 B 列上一行的计算结构时,可以:
这里用到了 Previous 函数来获取当前视图表结构内的上一行,而不需要使用复杂的 DAX 计算技术。
更加直观
业务驱动的商业数据建模分析从技术上讲,已经非常成熟。DAX 的发明几乎可以在数学上证明其完备性。而如何简化使用,如何直观使用,在 Power BI 中也正给出新的答案。
不久后,Power BI 的使用将更加直观:
也可以更随意地设置:
经过这些改进,Power BI 将进一步进化到一个前所未有的状态。
总结
随着视图层计算的首次亮相,Power BI 作为商业智能工具以及几乎补全了所有短板。
如果用一句话来总结这个精妙的世界,那么,这句话就是:
- 数据模型,将业务数据有机地整合到一起,与业务世界实现数字化等价。
- 计算列 / 表,为数据模型补充物质,使数据模型更加充沛。
- 度量值,为数据模型补充意识,使数据模型内涵逻辑。
- 视图计算,为每次的回答业务问题的最小查询做最直观补充。
整套操作下来,一气呵成,相当流畅。
如果你看懂本文,那恭喜你,你正在理解目前这个星球上分析业务最合适的工具;如果你没看懂本文,那恭喜你,你知道应该开始学习什么了。
后续
Power BI 作为一个工具存在,从个人角度,其数据分析的技术能力已经非常成熟,这些内容可以完全从这个公众号找到答案。接着,我们会聚焦于业务案例,用更直观的业务故事(Business Story)来启发和给大家参考。上海也会举办更丰富的线下活动,让强者更强。