DAX for MAX 一组

DAX for MAX of a group

我有两个数据列:

记录 |录制版本
----------------------
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 提供 Record Version 的最大值?例如Record 1的MAX值为3,Record 2的MAX值为4等

是的。将 table 添加到您的 Power Pivot 模型,方法是将数据粘贴到 Excel 然后单击 Power Pivot 功能区上的添加到数据模型,或者打开 Power Pivot Window 并添加它在那里形成了它的原始来源。

  1. 在 Power Pivot window 中,转到此数据所在的 table。
  2. Select Record Version 列,然后在 Home 选项卡的 Calculations 组中单击 AutoSum 旁边的下拉菜单并选择 Max。
  3. 一个计算列将出现在底部。您可以将其重命名为 Max Record Version 之类的名称。
  4. 在 Excel 中制作数据透视表(单击“主页”选项卡上的“数据透视表”按钮)。
  5. 将记录字段添加到行并将最大记录版本添加到值。

如果你真的想要一个计算来给你记录组的最大值,你可以这样做:

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

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

假设您有一个名为 recordsFact 的 table,这给出了该记录的最大值:

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