我的数据模型中有两个表使用DirectQuery连接。首先,我列出了与帐户相关的费用:
第二个是帐户组列表。同一个帐户可以在不同的组中,对于某些帐户,它的值可能是负数:
所以我在这里要创建一个度量/计算列,显示与组关联的所有成本的摘要。结果将是:
我的第一个直觉是这样写:
CalcAmount = SUM(Continents[Multiplier]) * SUM(Costs[Amount])
但结果不正确。例如,对于D组,它首先是SUMS乘法器1和乘数-1,它得到0.然后它将0乘以Amount,因此当乘数为+1和-1时,结果始终为0。
如何创建一个不会聚合乘数的公式,而是单独乘以每个值?
答案 0 :(得分:0)
为什么它不起作用
您编写的指标不正确,因为它与您所描述的完全相同:在乘以之前对Multiplier
/ Amount
列进行求和。它应该类似于以下内容:
CalcAmount = SUM(Groups[Multiplier] * Costs[Amount])
但是,要使其在Power BI中运行,需要以下内容:
如何使其发挥作用
我建议您按Costs
对Account
表进行分组(或者如果需要保留原始数据,则从当前表中创建一个新表),这样就可以建立一个与Groups
列上的Account
表格有很多关系。
Costs
表:
之后您可以创建一个度量并使用SUMX()
函数执行逐行评估:
CalcAmount = SUMX(Groups, Groups[Multiplier] * RELATED(Costs[Amount]))
结果将符合预期:
您还可以添加Account
列以查看详细信息细分:
编辑:(通过创建新表格替代解决方案)
仅创建一个包含DISTINCT Accounts
列的Account
表格:
创建一个Total Amount
指标,用于计算每个帐户的总计:
Total Amount = SUM(Costs[Amount])
对Costs[Amount]
指标使用度量而不是CalcAmount
:
CalcAmount = SUMX(Groups, Groups[Multiplier] * [Total Amount])
与上述结果相同: