首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在没有聚合的情况下创建度量?

问如何在没有聚合的情况下创建度量?
EN

Stack Overflow用户
提问于 2017-01-16 17:14:01
回答 1查看 7.2K关注 0票数 1

我的数据模型中有两个表,它们使用DirectQuery连接。首先,我有一份与账户有关的费用清单:

​

​

第二,一组账户的列表。同一账户可能属于不同的类别,对某些人来说,其价值可能为负值:

​

​

所以,我想在这里创建一个度量衡/计算列,它显示与一个组相关的所有成本的汇总。结果如下:

​

​

我的第一直觉是这样写:

代码语言:javascript
复制
CalcAmount = SUM(Continents[Multiplier]) * SUM(Costs[Amount])

然而,结果是不正确的。例如,对于D组,它首先求和乘数1和乘法器-1,结果为0。当乘子为+1和-1时,结果总是0。

我如何创建一个公式,它不聚合乘数,而是单独地乘以每个值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 03:19:18

为什么不能工作

您所写的度量是不正确的,因为它所做的与您所描述的完全一样:在乘前对Multiplier / Amount列进行求和。相反,它应该类似于以下内容:

代码语言:javascript
复制
CalcAmount = SUM(Groups[Multiplier] * Costs[Amount])

然而,要使其在Power BI中工作,需要做以下工作:

  • 正确的两个表之间的关系
  • 使用SUMX()函数而不是SUM()

如何使它工作

我建议您将Costs表按Account分组(或者根据当前表创建一个新表(如果需要保留原始数据),以便与Account列上的Groups表建立一对多的关系。

Costs表:

​

​

​

​

之后,您可以创建一个度量,并使用SUMX()函数执行逐行评估:

代码语言:javascript
复制
CalcAmount = SUMX(Groups, Groups[Multiplier] * RELATED(Costs[Amount]))

结果将如预期的那样:

​

​

还可以添加Account列以检查详细信息细分:

​

​

编辑:(创建新表的替代解决方案)

创建一个只有不同的Accounts列的Account表:

​

各表之间的关系:

​

创建一个计算每个帐户总数的Total Amount度量:

代码语言:javascript
复制
Total Amount = SUM(Costs[Amount])

使用度量值而不是Costs[Amount]来进行CalcAmount度量:

代码语言:javascript
复制
CalcAmount = SUMX(Groups, Groups[Multiplier] * [Total Amount])

与上述相同的结果:

​

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41681609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档