PowerBI矩阵不能排序?试试这些方法

您看看需不需要 2024-05-19 05:18:46

使用PowerBI的矩阵时,如果在【列】中放入字段,可以一次性生成多列的表格,和Excel中的数据逆透视表效果一样。

比如下面的矩阵,【行】中是产品,【列】中是月份,值是销售额,就可以一次性展示每个产品每月的销售额:

不过这样的矩阵,PowerBI就不再支持按照某个月份列进行排序了,如果想要排序,怎么办呢?

由于矩阵是根据度量值来排序的,上面的矩阵,虽然有多个列,实际上只有一个度量值,所以没法按照单个月份列排序,如果想按照每个月份列排序,可以参考下面两种方法来变通实现。

方法一

【列】中不要放字段,如果需要12个月份列,单独写12个度量值,比如“一月”的度量值这样写:

一月 = CALCULATE([销售额],'日期表'[月份名称]="一月")

按照这种方式写12个度量值,将12个度量值放入到矩阵的【值】中,就可以单独按某一列排序了。

如果列不是很多,这种方式也很简单,但是如果列非常多,这种做法就太繁琐了,可以用下面的方法。

方法二

对于【列】中放入字段的矩阵,虽然不支持按每一列排序,但还是支持按总计来排序的,我们就可以利用总计排序,来变相达到某一列排序的效果。

以上面的矩阵为例,步骤如下:

1、新建一个辅助表

点击新建表,用DAX建一个月份的表:

关于辅助表的更多制作方式可参考:Power BI 辅助表制作方式汇总

把“月”也添加进来,是为了对中文的月份进行按列排序,如果没有排序的需求,可以不添加数字列。

然后用这个辅助表中的“月份名称”,来制作切片器。

2、写度量值自定义总计

矩阵排序 =

IF(

ISINSCOPE('日期表'[月份名称]),

[销售额],

CALCULATE([销售额],'日期表'[月份名称]=MAX('排序依据'[月份名称]))

)

写这个度量值的目的是为了让总计等于需要排序的列的值。

关于自定义总计可参考:一文掌握Power BI矩阵总计的自定义计算

3、制作矩阵,根据切片器的选项来排序

将日期表的月份名称放入到矩阵的【列】,第2步写的度量值放入到【值】,选择按总计来排序。

这样就可以实现点击哪个月份,就按哪个月份排序的效果。

如果不想显示总计,可以鼠标拖动最后的总计列将它隐藏掉(参考:Power BI矩阵格式设置13招)。

以上就是矩阵排序的技巧,如有这样的需求可以尝试。

PowerBI星球

0 阅读:0

您看看需不需要

简介:感谢大家的关注