我是DAX
和OLAP
的完整 noob ,所以请原谅任何错误。
基本上,我在Matrix
报告中有PowerBI Desktop
个组件。
几个月位于行上的指标列上:
当我尝试计算(红色百分比)的比率时出现问题:
所有指标都位于同一组中。我希望将这些比率作为单独的,但一个列。
我计算公制比例总计没有问题;我只需要SUM(#)
并按度量划分总计:
Total = CALCULATE(SUM('Data'[#]); ALL('Data'[Metric]))
但是如何获得 Metric X 的SUM(#)
汇总,以后我可以用它来计算其他指标的比率?
作为我创建此表格的其中一个步骤,为指标A 获取聚合的#:
Table = ADDCOLUMNS(
SUMMARIZE('Data';
'Data'[GroupAndMetric];
'Data'[Year];
'Data'[MonthNo]);
"Count";
CALCULATE(SUM('Data'[#]); 'Data'[GroupAndMetric] = "Group A - Metric A")
)
任何帮助表示感谢。
答案 0 :(得分:1)
我认为有一种更简单的方法来获得预期结果,但我假设您的数据与OP中发布的数据完全相同。
创建以下度量以计算每个度量的给定上下文中的先前值和当前值。
[#]
的总和:
CurrentValue = SUM(Data[#])
当前小组
CurrentGroup = FIRSTNONBLANK(Data[Group],0)
当前指标
CurrentMetric = FIRSTNONBLANK(Data[Metric],0)
本月:
CurrentMonth = FIRSTNONBLANK(Data[Month],0)
这会计算以前的度量标准
PrevMetric =
IF (
[CurrentMetric] = "Metric A",
BLANK (),
IF (
[CurrentMetric] = "Metric B",
"Metric A",
IF ( [CurrentMetric] = "Metric C", "Metric B", BLANK () )
)
)
计算比率计算所需的先前度量标准和:
Previous # Sum =
CALCULATE (
SUM ( Data[#] ),
FILTER (
ALL ( Data),
COUNTROWS (
FILTER (
Data,
EARLIER ( Data[Metric] ) = [PrevMetric]
&& EARLIER ( Data[Group] ) = [CurrentGroup]
&& EARLIER ( Data[Month] ) = [CurrentMonth]
)
)
)
)
最后计算比率:
% Ratio = DIVIDE([CurrentValue], [Previous # Sum])
您将获得一系列度量,但您只需使用矩阵中的%Ratio:
如果有帮助,请告诉我。
答案 1 :(得分:0)
这可能是(更多)更好的方法,但这是一种方式:
执行度量标准B除以度量标准A(例如):
Metric B to Metric A =
DIVIDE (
CALCULATE ( SUM ( Data[#] ), FILTER ( Data, Data[Metric] = "Metric B" ) ),
CALCULATE ( SUM ( Data[#] ), ALL ( Data[Metric] ), Data[Metric] = "Metric A" ),
BLANK ()
)
如果数据透视表未被过滤到度量B,则第一个CALCULATE(分子)返回空白。第二个CALCULATE(除数)返回度量A的总和(跟随应用的任何其他过滤器,所以它例如,只要组在您的数据透视表上,就不会总结另一组中的度量标准B)。如果我们查看除B以外的任何指标,则整个除法将为BLANK,因为分子将为空。最终的BLANK说,如果没有度量标准A(即除以零),那么结果也将是BLANK。
假设有两个这样的度量,你可以将它们组合成一个列:
Final Ratio =
IF (
NOT ( ISBLANK ( [Metric B to Metric A] ) )
&& NOT ( ISBLANK ( [Metric C to Metric B] ) ),
BLANK (),
IF (
NOT ( ISBLANK ( [Metric B to Metric A] ) ),
[Metric B to Metric A],
IF (
NOT ( ISBLANK ( [Metric C to Metric B] ) ),
[Metric C to Metric B],
BLANK ()
)
)
)
第一部分说,如果两个指标都不是空白,则返回一个空白(即我不想要一个没有意义的小组总数)。然后,它会遍历每个指标,并说明如果它不是空白,则显示它。否则,显示空白。由于每个基础度量仅返回单个给定度量的值,因此这应该有效。