还有很多小伙伴学习了《PowerBI 全动态中国式复杂矩阵》的 1.0 和 2.0 版,已经获益良多,而今天,你将看到新的可能性。什么是 4.0 版?本文会给出说明。
今天,我们非常高兴地报告给各位伙伴,PowerBI DAX 已经可以实现完美的中国式复杂矩阵,它大概长的是这样的:
这类构造可能用到大量 DAX 特性以及函数,包括但不限于:筛选上下文,行上下文,上下文转换,DAX查询,VAR,EARLIER,SUMX,RANKX,TREATAS,{ },按列排序,CALCULATE,SWITCH,IN,数据沿袭等。
由于在极致复杂的状态下,可能是任意复杂的,除了需要坚实的 DAX 基础还需要精妙的 DAX 建模思想和方法方可有效实现。本文先来提出这类矩阵的业务展现要求,以及最终形态,让大家对这种终极矩阵的形态有所认识,并可以自己尝试实践。
后续文章,我们会陆续再讲解细节。
十大业务需求
以下列出业务人员对中国式复杂矩阵的十大需求:
- 一、矩阵列头可以是任意排布的,如:任意顺序;
- 二、矩阵行头可以是任意排布的,如:任意顺序;
- 三、矩阵列头和行头是可以从层级选择的,如:多层级,从层级选择需要显示的内容;
- 四、矩阵行头及内容可以支持动态 TOP N,如:用户选择 TOP N,不显示的收入其他;
- 五、矩阵的单元格背景颜色可以是任意的,如:按照某种规则设置(且支持透明度),普通,小计,合计;
- 六、矩阵的单元格字体颜色可以是任意的,如:正负的不同颜色等;
- 七、矩阵的单元格数字格式可以是任意的,如:千分位整数,百分比,小数等;
- 八、矩阵行的排序可以是任意的,如:按照销售额大小对行排序,但其他,小计,合计总在最后;
- 九、矩阵的计算是全动态的,如:切片器和其他图表可以交叉筛选该矩阵;
- 十、矩阵的数字是可以导出的,且保持数字格式可以在 Excel 中进一步处理。
这些就是中国式复杂矩阵从业务角度出发的十大诉求。
其实,业务完全可以提出让单元格的设置和 Excel 一样,那就相当于又要实现一套 Excel 了,那种工程是不可想象的,因此,我们在这里保留了最重要的十大诉求。如果您可以对照该十大诉求给出可复用的套路,你的 PowerBI 以及 DAX 的构建水品就可以满足日常应用了。
其中,具有真正核心地位的是第九点,它能来确保矩阵是动态,而不是一个固定死的矩阵。这也是 PowerBI DAX 有别于其他商业智能软件的根本所在。PowerBI 本身并没有一个官方说明来描述如何构建中国式复杂矩阵,因此,我们需要探索并寻求一套解决方案。
完美版的实现
虽然没有官方的介绍,但是我们还是探索和找到了这套完美实现方案。现在的方案是无懈可击的完美方案,原因很简单,它实现了上述所有十大业务需求。因此,我们称之为:《PowerBI 全动态中国式复杂矩阵完美版》史称 v3.0。
下面给出历史上,全网范围首发给出的 PowerBI 中国式复杂矩阵方法:
- 2018-05-07 BI佐罗 全网首发《PowerBI 全动态中国式复杂矩阵》史称 v1.0
- 2019-01-06 BI佐罗 全网首发《PowerBI 全动态中国式最强超级矩阵》史称 v2.0
- 2021-01-08 BI佐罗 全网首发《PowerBI 全动态中国式复杂矩阵完美版》史称 v3.0
- 2021-01-08 BI佐罗 全网首发《PowerBI 全动态中国式复杂矩阵完美增强版》史称 v4.0
你没有看错,完美的阶段已经被超越了,今日同时首发:《PowerBI 全动态中国式复杂矩阵完美增强版》史称 v4.0。
完美增强版到底增强了什么
作为完美增强版,是建立在完美版基础上的增强版本,它首先也满足了中国式复杂矩阵的十大业务需求。
主要有两点:
- 性能优化
- 设计模式
完美增强版(v4.0)与完美版(v3.0)有着完全一摸一样的面貌,然后 v4.0 的完美增强版将以至少 3 倍速高速运行,如下所示:
对于完美增强版(v4.0)而言,有着和完美版(v3.0)完全不同的实现方式:
- v3.0 是基于模型层计算
- v4.0 是基于视图层计算
模型层计算以及视图层计算的正式思路已经由BI佐罗《PBI高级》给出。
可以看出,v4.0 与 v3.0 的呈现结果完全相同,但速度是完美版的 3 倍之多。
完美版 v3.0 版本 DAX 公式鸟瞰:
完美增强版 v4.0 版本 DAX 公式鸟瞰:
完美版 v3.0 版本 DAX 引擎执行鸟瞰:
完美增强版 v4.0 版本 DAX 引擎执行鸟瞰:
很明显,相比于完美版 v3.0 版本 DAX 引擎执行而言,完美增强版 v4.0 将 DAX 引擎执行有了大幅度提升:
- DAX 引擎 SE 查询优化了 5 倍以上
- DAX 引擎 FE 查询优化了 3 倍以上
这些内容对于业务背景的伙伴都不需要理解,只需要看出这个结果是好的,就可以了。
完美增强版的设计模式
在完美增强版 v4.0 的设计中,用到了大量设计模式和思想,包括但不限于:
- 视图层通用计算思想
- 笛卡尔积通用表头构建模式
- 动态挂载
- 非侵入式设计
- 钩子
- 依赖注入
- 面向切面的 AOP 设计模式
- 计算组以及计算流透传模式
用到的 DAX 特性更是几乎包揽了所有 DAX 基础和高级特性。
总结
每一个学习 PowerBI DAX 的伙伴都应该做到:以极致的性能实现中国式复杂矩阵的十大业务通用需求。您可以对照该业务诉求,自行实现以上案例来作为测试。
完美版 v3.0 和完美增强版 v4.0 由于是基于完全不同的思路构建的,它们可以互作检查,如果它们的计算结果是一致的,那么,作业就对了,无需检查。
在构建中国式复杂矩阵的过程中,涉及到几乎所有 DAX 基础和高级特性,正可谓一个案例又顶了一套课程。
本来,BI佐罗 出品《PBI高级》已经详解了中国式复杂矩阵的 v1.0 及 v2.0 方案,而 完美版 v3.0 和完美增强版 v4.0 将补充首发在 BI佐罗 出品《PBI高级》中,这套课程无端端又被植入了一个超级案例。
《PBI高级》是BI佐罗出品的《BI真经》系列(共 7 门)的其中一门,如果您准备或正在学习 PowerBI,看了本文,如果你有分析的常识,应该分析下该如何选择学习课程了吧,很显然了啊。
《PBI高级》无端端又整合包括了:AOP超级设计模式,《PowerBI 全动态中国式复杂矩阵》完美版及完美增强版的详解,是不是应该再涨点价了呢?2021,我们将与您同行,让数据真正成为你的力量。
【点击查看】PBI中国式复杂矩阵 v1.0 【点击查看】PBI中国式复杂矩阵 v2.0 【点击查看】立即抢购BI佐罗出品《PBI高级》- 私信
【私信联系】立即抢购BI佐罗出品包括《PBI高级》在内的《BI真经》系列 - 私信