Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 如何创建没有聚合的度量值?_Powerbi_Dax - Fatal编程技术网

Powerbi 如何创建没有聚合的度量值?

Powerbi 如何创建没有聚合的度量值?,powerbi,dax,Powerbi,Dax,我的数据模型中有两个表,它们使用DirectQuery连接。首先,我有一个与账户相关的成本列表: 第二个是账户组列表。同一帐户可以在不同的组中,对于某些组,其值可能为负值: 因此,我想在这里创建一个度量/计算列,显示与组相关的所有成本的摘要。结果将是: 我的第一个直觉是这样写的: CalcAmount = SUM(Continents[Multiplier]) * SUM(Costs[Amount]) 然而,结果并不正确。例如,对于组D,它首先将乘数1和乘数-1相加,结果为0。然后它将0

我的数据模型中有两个表,它们使用DirectQuery连接。首先,我有一个与账户相关的成本列表:

第二个是账户组列表。同一帐户可以在不同的组中,对于某些组,其值可能为负值:

因此,我想在这里创建一个度量/计算列,显示与组相关的所有成本的摘要。结果将是:

我的第一个直觉是这样写的:

CalcAmount = SUM(Continents[Multiplier]) * SUM(Costs[Amount])
然而,结果并不正确。例如,对于组D,它首先将乘数1和乘数-1相加,结果为0。然后它将0乘以数量,因此当乘数为+1和-1时,结果总是0


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

为什么它不起作用

您编写的度量值不正确,因为它与您描述的完全相同:在相乘之前对
乘数
/
金额
列求和。它应该类似于以下内容:

CalcAmount = SUM(Groups[Multiplier] * Costs[Amount])
但是,要使其在Power BI中工作,需要以下几点:

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

如何使其工作

我建议您将
成本
表按
科目
分组(或者如果需要保留原始数据,则从当前表创建一个新表),以便可以与
科目
列上的
表建立一对多关系

成本
表:

之后,您可以创建一个度量值并使用
SUMX()
函数执行行计算:

CalcAmount = SUMX(Groups, Groups[Multiplier] * RELATED(Costs[Amount]))
结果将如预期的那样:

您还可以添加
科目
列以检查明细明细:


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

创建一个
Accounts
表,该表仅包含不同的
Account
列:

表之间的关系:

创建一个
总金额
度量,用于计算每个账户的总金额:

Total Amount = SUM(Costs[Amount])
对于
CalcAmount
度量,请使用该度量而不是
成本[金额]

CalcAmount = SUMX(Groups, Groups[Multiplier] * [Total Amount])
与上述结果相同:


您的预期结果是什么?注意,可视化将汇总组列,因此每个组只有一行。所以你的第一个C值应该是-160,第二个应该是160,如果你把-160+160加起来,它会给你0。例如,D组包含帐户1和帐户2。如果你看到成本表,1=$110+150,2=$130+160。由于账户1的乘数为负,因此-260美元+290美元=30美元。我将在问题中发布一个结果表。确定组
a
的正确
金额
值的逻辑是什么,因为该组对应于帐户
1
,该帐户在
成本
表中有两个
金额
值。你好,福山,我无法按科目对成本表进行分组,因为该表中还有其他列。我所做的是添加一个Accounts表,并将Costs表与之建立多对一的关系。然后,我创建了从Accounts表到Groups表的一对多关系。但是,当尝试使用公式时,相关函数返回“列“Costs[Amount]”或者不存在,或者与当前上下文中的任何可用表都没有关系。”。当两个表通过中间表关联时,是否有办法使其工作?@Lisovacaro您可以添加一个总额度量并替换表达式中的
成本[金额]
。详细信息请查看已编辑的解决方案。