PowerBI字段参数应用:动态显示列名
转载自https://zhuanlan.zhihu.com/p/564430323
最近碰到一个星友的提问,他结合这篇文章(无日期上下文如何计算同比环比)的思路,已经建好了本月、上月、上年同期以及环比、同比数据这几个度量值,用矩阵展示每个类别的数据如下图:

想在此基础上为进一步设计:
- 为所有的数据列添加一个表头,命名为“收入”;
- 将本月、上月等显示为具体的月份,比如现在是2022年6月份,本月就显示为202206,上月显示为202205,并且月份是可以动态变动的,到7月份,本月自动显示为202207。
想要实现的效果如下:

对于第一个需求很简单,利用之前介绍过的构造复杂表格的思路就可以做到:
而对于第二个需求是个难点,在5月之前很难做到,不过现在利用新的字段参数功能,上面这两个需求都可以轻松实现,下面介绍一下实现步骤。
1. 新建字段参数
利用已经建好的度量值生成字段参数。

关于字段参数的基本用法请参考:Power BI字段参数介绍以及常见应用场景
2. 为参数表添加一列
打开参数的DAX表达式,手动添加一列,每一行都是“收入”。

然后将参数放到矩阵的【值】中,手动添加的列放到矩阵的【列】中,

效果如下:

这样就添加了一个表头,实现了第一个需求。
左上角自动显示了该列的列名,你可以双击【列】中的字段,将它直接修改为空格,就不会显示了。
3. 修改参数表中的参数名称
自动生成的字段参数,名称默认是度量值或者列字段的名称,这个名称是静态的文本,不过它也是可以利用DAX来调整为动态的变量。
这里接着修改参数表的公式如下:

这里的逻辑是先利用变量找出本月、上月、上年同期对应的年度月份,然后将参数表的第一列,修改为对应的变量名,其中同比和环比也在字符的前面加上对应的年月,以便更清晰的显示出具体是哪个月的指标。
这样修改后参数表的第一列就变成了具体的年月,矩阵也自动变成了需求的效果:

参数的名称利用TODAY函数来获取的本月和上月的名称,那么随着时间的变化,这些列名也会自动的调整。
利用字段参数这个特性,不用单独构造结构表,也可以便捷而灵活地来设计一些个性化的中国式报表了。