【问题标题】:PowerPivot - Custom Calculation on summarized tablePowerPivot - 汇总表上的自定义计算
【发布时间】:2016-01-28 10:06:12
【问题描述】:

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

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])

提前感谢您的回答!

【问题讨论】:

    标签: excel powerpivot dax


    【解决方案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():

    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]
        )
    

    【讨论】:

    • 很抱歉给您带来不便,我指的是措施。据我了解,我不能在 PowerPivot 中使用 VAR 并且我没有 PowerQuery。谢谢你的澄清。
    猜你喜欢
    • 2020-01-02
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    相关资源
    最近更新 更多