Matrix 在幂BI中对系数矩阵列重新排序

Matrix 在幂BI中对系数矩阵列重新排序,matrix,powerbi,columnsorting,Matrix,Powerbi,Columnsorting,我在Power BI中有一个矩阵视觉。列是部门,行是年份。这些值是每个部门每年的人数。这些部门显然没有自然排序,但我想使用每个部门的总列数按降序对它们进行重新排序 例如,如果C部门在过去几年(行)总共有100人,而所有其他部门的人数都较少,我希望C部门排在第一位 我见过其他添加索引列的解决方案,但这对我来说效果不太好,因为“count of people”变量是我想要索引的变量,而这在我的数据中并不存在。相反,这是一个基于个人的计算,每个人都有一个部门和一年 如果有人能给我指出一种改变列顺序/排

我在Power BI中有一个矩阵视觉。列是部门,行是年份。这些值是每个部门每年的人数。这些部门显然没有自然排序,但我想使用每个部门的总列数按降序对它们进行重新排序

例如,如果C部门在过去几年(行)总共有100人,而所有其他部门的人数都较少,我希望C部门排在第一位

我见过其他添加索引列的解决方案,但这对我来说效果不太好,因为“count of people”变量是我想要索引的变量,而这在我的数据中并不存在。相反,这是一个基于个人的计算,每个人都有一个部门和一年

如果有人能给我指出一种改变列顺序/排序的简单方法,那就太棒了

      | DeptA | DeptB | DeptC
------|-------|-------|-------
1900  |   2   |   5   |  10
2000  |   6   |   7   |   2
2010  |  10   |   1   |  12
2020  |   0   |   3   |  30
------|-------|-------|-------
Total |  18   |  16   |  54

Order:   #2      #3      #1

我不认为有一种内置的方法可以做到这一点,就像对行进行排序一样(虽然应该有,所以就这样做),但这里有一种可能的解决方法

我假设您的源表名为
Employees
,如下所示:

Department  Year   Value
A           1900    2
B           1900    5
C           1900   10
A           2000    6
B           2000    7
C           2000    2
A           2010   10
B           2010    1
C           2010   12
A           2020    0
B           2020    3
C           2020   30
Depts = SUMMARIZE(Employees, Employees[Department], "Total", SUM(Employees[Value]))
首先,创建一个新的计算表,如下所示:

Department  Year   Value
A           1900    2
B           1900    5
C           1900   10
A           2000    6
B           2000    7
C           2000    2
A           2010   10
B           2010    1
C           2010   12
A           2020    0
B           2020    3
C           2020   30
Depts = SUMMARIZE(Employees, Employees[Department], "Total", SUM(Employees[Value]))
这将为您提供一个简短的表格,如下所示:

Department  Total
A           18
B           16
C           54
由此,您可以轻松地在此
Depts
表上使用计算列对总计进行排序:

Rank = RANKX('Depts', 'Depts'[Total])
确保新的
部门
表与
部门
列上的原始
员工
表相关

在“数据”选项卡下,使用“建模”>“按列排序”对部门[部门]按部门[等级]排序

最后,将可视化矩阵上的
员工[部门]
替换为
部门[部门]
,您应获得以下信息:


谢谢分享!我不确定我是否想惹麻烦,但如果我决定需要,我很感激能找到解决办法