PowerPivot - 汇总表上的自定义计算

时间:2015-10-28 14:52:40

标签: excel powerpivot dax

我有一个包含两个变量的汇总表:

SUMMARIZE(Table;
             Table[Static1];
             Table[Static2];
             Table[Static3];
             "Total1Summarized"; MAX(Table[TOTAL1]);
             "Total2Summarized"; MAX(Table[TOTAL2])
                       )

我想创建一个新变量SUM(Total1Summarized)/SUM(Total2Summarized)

我知道我可以通过创建两个求和变量并将其中一个相互分开来完成这项任务,但我认为对于大型计算,有一个总结更快。

我目前的解决方案:

创建两个不同的变量:

Variable1:=
SUMX(
     SUMMARIZE(Table;
               Table[Static1];
               Table[Static2];
               Table[Static3];
               "Total1Summarized"; MAX(Table[TOTAL1])
               );
     [Total1Summarized]
    )

Variable2:=
SUMX(
     SUMMARIZE(Table;
               Table[Static1];
               Table[Static2];
               Table[Static3];
               "Total2Summarized"; MAX(Table[TOTAL2])
               );
     [Total1Summarized]
    )

除以它们的总和:

FinalVariable:=SUM([Variable1])/SUM([Variable2])

提前感谢您的回答!

1 个答案:

答案 0 :(得分:1)

我认为你们混淆了措施(12)和变量(34)这些都是DAX中的不同概念。看起来你真的想要创建一个度量。如果这不正确,请告诉我,我将编辑此答案以使其更适合您。

你现在所做的就是采取措施。正如您在第一个代码示例中所示,创建单个SUMMARIZE()非常简单。话虽如此,在SUMMARIZE中得到两个预计列的总和并将它们分开。如果你只想要一个度量,你可以直接划分SUMX():

SingleMeasure:=
SUMX(
    SUMMARIZE(
        Table;
        Table[Static1];
        Table[Static2];
        Table[Static3];
        "Total1Summarized"; MAX(Table[TOTAL1])
    );
    [Total1Summarized]
) / SUMX(
        SUMMARIZE(
            Table;
            Table[Static1];
            Table[Static2];
            Table[Static3];
            "Total2Summarized"; MAX(Table[TOTAL2])
        );
        [Total2Summarized]
    )

但是你不会消除双SUMX()。

如果要使用变量,可以将SUMMARIZE()定义为变量,然后简化SUMX()s:

SingleMeasure:=
VAR sumtable = 
    SUMMARIZE(
        Table;
        Table[Static1];
        Table[Static2];
        Table[Static3];
        "Total1Summarized"; MAX(Table[TOTAL1])
        "Total2Summarized"; MAX(Table[TOTAL2])
    );
return
SUMX(
    sumtable;
    [Total1Summarized]
) / SUMX(
        sumtable;
        [Total2Summarized]
    )