Jon*_*ord 5 excel powerpivot dax
我有两张表:一张是客户表(“Donor”),一张是交易表(“Trans”)。在捐赠者中,我想要一个“总计”列,用于按特定捐赠者 ID 汇总所有交易,我将在标准 Excel 表格中计算该 ID,如下所示:
=SUMIF(Trans[Donor ID],[@ID],Trans[Amt])
Run Code Online (Sandbox Code Playgroud)
简单的!如何使用 DAX 公式做同样的事情?我想
=CALCULATE(SUM(Trans[Amt]),Trans[Donor ID]=[ID])
Run Code Online (Sandbox Code Playgroud)
会这样做,但我收到错误
Column "ID" cannot be found or may not be used in this expression.
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我使用
=CALCULATE(SUM(Trans[Amt]),Trans[Donor ID]=3893)
Run Code Online (Sandbox Code Playgroud)
我确实得到了 ID 3893 的总数。
避开计算,我确实发现这是有效的:
=SUMX(FILTER(Trans, Trans[Donor ID]=[ID]),[Amt])
Run Code Online (Sandbox Code Playgroud)
...但它只允许一个过滤器,我需要能够添加更多过滤器,但是:
=SUMX(CALCULATETABLE(Trans, Trans[Donor ID]=[ID]),[Amt])
Run Code Online (Sandbox Code Playgroud)
...(我理解就像 FILTER 但允许多个)不起作用。
你能找出我做错了什么吗?
小智 6
拼凑出如下所示的快速模型后:
我已确认此 DAX 论坛可用作捐赠者表中的计算列:
=CALCULATE(SUM(Trans[Amt]), FILTER(Trans, Trans[Donor] = Donor[DonorKey]))
Run Code Online (Sandbox Code Playgroud)
这里的关键是确保两个表之间的关系配置正确,然后确保使用 CALCULATE() 和 FILTER() 的组合——根据当前的捐赠者上下文过滤 trans 表。