PowerPivot - 汇总的自定义计算 table
PowerPivot - Custom Calculation on summarized table
我总结了 table 两个变量:
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, 2) and variables (3, 4),它们在 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()。
如果您想使用变量,您可以将 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]
)
我总结了 table 两个变量:
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, 2) and variables (3, 4),它们在 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()。
如果您想使用变量,您可以将 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]
)