DAX将排名增加到另一个分组

时间:2017-10-01 18:58:20

标签: sql-server powerbi dax

我有一个包含这样数据的表:

StoreID |  Week/End  | Sales
===========================
  1     |   9/2      |  10
  2     |   9/2      |  5
  3     |   9/2      |  3
  1     |   9/9      |  5
  2     |   9/9      |  2
  3     |   9/9      |  10

我需要做的是按周对销售额进行排名,然后将排名值加起来。

我尝试使用RANKX这样的措施:

=RANKX(ALL(Stores), SUMX(RELATEDTABLE(Sales), [Sales]))  

这将给我下表:

StoreID |  Week/End  | Sales  | Rank
=====================================
  1     |   9/2      |  10    |   1
  2     |   9/2      |  5     |   2
  3     |   9/2      |  3     |   3
  1     |   9/9      |  5     |   2
  2     |   9/9      |  2     |   3
  3     |   9/9      |  10    |   1

我现在需要做的是按Store添加排名列,所以最后我会得到一个这样的表:

StoreID |  Overall Rank
=======================
  1     |   3
  2     |   5
  3     |   4

因此,商店1的值为3,因为w / e 9/2为1,aw / e 9/9等级为2.商店2的总排名为5,因为w / e 9/2 of 2和aw / e 9/9等级为3,依此类推。

我会尝试在SQL中执行此操作,但遗憾的是我的一些基本数据是在Excel中,其中一些是在SQL中,因此我需要在DAX或M中执行此操作。

任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:1)

据我了解您正在使用Power BI。如果你在表格菜单(第二个)中,我会创建一个列名为StoreID的新表,并写入变量1,2和3.

然后在关系菜单(第三个)中按StoreID连接这些列。当您返回表格菜单中的第二个表格时,可以选择添加计算列:

Overall_Rank= CALCULATE(SUM(first_table[Rank]))

当它们连接时,它将识别匹配的StoreID,因此不需要任何其他过滤器。