在Power BI中对因子矩阵列进行重新排序

时间:2018-10-10 23:06:47

标签: matrix powerbi columnsorting

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

例如,如果C部门多年来(行)总共有100个人,而其他所有部门的人数都较少,那么我希望C部门排在第一位。

我看到了其他添加索引列的解决方案,但是这对我来说效果不佳,因为“人数”变量是我要作为索引依据的变量,并且该变量在我的数据中还不存在。而是基于每个人都有部门和年份的计算。

如果任何人都可以向我介绍一种简单的更改列排序/排序的简便方法,那将非常出色!

      | 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

1 个答案:

答案 0 :(得分:0)

我不认为有内置的方法可以像对行进行排序一样(应该有,所以请vote for a similar idea here),但这是一个可行的解决方法。

我假设您的源表名为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  Total
A           18
B           16
C           54

由此,您可以使用此Depts表上的计算列轻松地对总计进行排名:

Rank = RANKX('Depts', 'Depts'[Total])

确保新的Depts表与Employees列上的原始Department表相关。

Relationship Diagram

在“数据”标签下,使用“建模”>“按列排序”对Depts[Department]Depts[Rank]进行排序。

enter image description here

最后,将Employees[Department]替换为矩阵视觉上的Depts[Department],您将获得以下信息:

Output