现在小伙伴们就可以下载最新版的 PowerBI Desktop 安装程序来体现动态格式了。
当你有了一个度量值,它只能被设定为一个数据格式,如下:
同样都是数字,我们的需求是:
但我们要求它们仅仅是显示方式,这不应该改变数据的物理类型,都必须还是数字,而不能是文本。
在 PowerBI 中去实现 KPI 的参数化,非常常见,例如:
我们希望可以选择 KPI 后,该图表显示用户所选的 KPI,这样就可以支持仅仅使用一个图表来呈现多个 KPI 的切换了。
当我们选择利润率,如下:
很遗憾,这的确并非是我们希望的结果,利润率被显示成了小数形式,并非百分比形式。
当使用计算组后,我们可以分别设置返回的数据格式,达到如下效果:
以及:
这样,就相当完美了。
在启用了增强的元数据后,DAX 引擎大概的查询如下:
可以看出,这里涉及到一个格式,得到查询结果如下:
这样,PowerBI 视图层就可以使用这个格式化字符串来对显示进行格式化了。
在没有计算组之前,我们也可以实现度量值的参数化,大致实现是这样的:
这里的实现没有问题,但由于只有一个度量值,所以只能返回一个数据格式,这样,就不能实现我们的诉求。因为,永远只能返回一个格式。
计算组,的一个好处就是为一个已知的计算,给定多个计算路径,而在每一个计算路径中,都可以重新:
这里正是用到了这点,例如:
对于这点来说,度量值本身是什么,根本不重要,例如:
这里 KPI 实际仅仅是一个占位符,而真正的执行,可以交给计算组来完成。
关于计算组的基本使用,在此前的文章已经介绍,可以参考:PowerBI DAX 计算组 基础篇。
这里可以这样构建,如下:
这样,就 OK 了。
从本文,我们可以感悟到一件比较本质的事情:计算组的动机是,已知某已知指标,需要切换其计算逻辑。很多伙伴会问,用一个参数表加度量值的配合和直接使用计算组都可以得到一样的效果,那么到底在什么场合下使用计算组呢?答案现在至少有两点:
另外,值得注意的是,支持动态格式字符串还需要 PowerBI 视图层各个图表的支持,在 2020.07.30 之前,只有表和矩阵可以支持这点;而现在更新的 PowerBI Dekstop 已经可以在更多的图表中内置支持这个重要特性了。