2015-10-28 22 views
0

自定义计算我有一个汇总表有两个变量:的PowerPivot - 在总结表

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

划分它们的SUM:

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

预先感谢您的答案!

回答

1

我认为你是令人困惑的措施(12)和变量(34),它们在DAX中都是不同的概念。看起来你实际上想要创建一个度量。如果这是不正确的,请让我知道,我会编辑这个答案更适合你。

你现在正在做的就是在措施方面。如您在第一个代码示例中所示,创建单个SUMMARIZE()很容易。也就是说,在SUMMARIZE中获得两个投影列的总和并将它们分开。如果你只想要一个单一的措施,你可以划分SUMX()直接S:

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(),虽然。

如果你想使用的变量,你可以定义你的总结()作为一个变量,然后简化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] 
    ) 
+0

抱歉不便,我的意思措施。据我所知,我不能在PowerPivot中使用_VAR_,并且我没有PowerQuery。谢谢你澄清。 – user3816879