DAX表示组的MAX

时间:2015-03-10 21:00:09

标签: visual-studio-2012 max powerpivot calculated-columns dax

我有两个数据列:

Record | Record Version
------------------------
1      | 1
1      | 2
1      | 3
2      | 1
2      | 2
2      | 3
2      | 4
3      | 1
3      | 2
3      | 3
4      | 1
4      | 2
4      | 3
4      | 4
4      | 5
4      | 6
5      | 1
6      | 1

是否可以在MVS-2012模型或PowerPivot中创建计算列,为相应的Record Version提供Record的MAX?例如,Record 1的MAX值为3,Record 2的MAX值为4等。

2 个答案:

答案 0 :(得分:3)

是。将该表添加到Power Pivot模型,方法是将数据粘贴到Excel中,然后单击Power Pivot功能区上的添加到数据模型,或者打开Power Pivot窗口并将其添加到其原始源中。

  1. 在Power Pivot窗口中,转到此数据所在的表格。
  2. 选择“记录版本”列,然后单击“主页”选项卡上“计算”组中“自动求和”旁边的下拉列表,选择“最大”。 enter image description here
  3. 计算列将显示在底部。你可以将它重命名为Max Record Version。
  4. 在Excel中创建数据透视表(单击“主页”选项卡上的“数据透视表”按钮)。
  5. 将记录字段添加到行,将最大记录版本添加到值。
  6. enter image description here

    如果您真的想要一个能够为您提供记录组最大值的计算,您可以执行以下操作:

    =SUMX(VALUES(Table1[Record])
          ,CALCULATE(MAX(Table1[Record Version]))
         )
    

答案 1 :(得分:0)

一般来说,正如@mmarie建议的那样,你最好用一个度量而不是计算列来处理这类问题。也就是说,有时您只需要额外的列(通常用作维度)。

假设您有一个名为recordsFact的表,则会给出该记录的MAX:

= CALCULATE(MAX(recordsFact[Record Version]), 
             FILTER(recordsFact, recordsFact[Record] = EARLIER(recordsFact[Record])
                   ))