在我的 PowerPivot table 中实现此类求和的 DAX 公式是什么?
What is the DAX formula to achieve this type of summation in my PowerPivot table?
我在 Excel 2013 年有一个 PowerPivot table 运行,它从 SQL 查询中收集内容。 table 的简化摘录如下所示(实际 table 有超过 150,000 行):
ID Revenue Quarter
145 23,000 Qr2 2014
469 151,000 Qr1 2014
478 40,000 Qr2 2014
587 30,000 Qr3 2014
643 15,000 Qr3 2014
698 20,000 Qr1 2014
812 60,000 Qr2 2014
我需要 "Quarter" 列旁边的 DAX 公式,它会给出以下输出:
ID Revenue Quarter SUMQ
145 23,000 Qr2 2014 123,000
469 151,000 Qr1 2014 171,000
478 40,000 Qr2 2014 123,000
587 30,000 Qr3 2014 45,000
643 15,000 Qr3 2014 45,000
698 20,000 Qr1 2014 171,000
812 60,000 Qr2 2014 123,000
基本上,SUMQ 列将是一个计算列,它需要对 table 的所有行中的相应季度求和并报告该 SUM。当新数据添加到 table 时,SUMQ 列将自动更新。
我的研究让我找到了 DAX 中的 SUMX 公式,但我很难尝试在我的模型中实现它。
您可以使用以下内容创建计算列:
=
CALCULATE (
SUM ( [Revenue] ),
ALL ( MyTable ),
MyTable[Quarter] = EARLIER ( MyTable[Quarter] )
)
此处您要计算整个 table (ALL) 的收入总和,其中季度值是初始行上下文 (EARLIER) 中的值。
这种类型的模式通常用于 abc 分析。参见 http://www.daxpatterns.com/abc-classification/
我没有足够的声誉来评论上面的 post,但我想指出 ALLEXCEPT() 是实现此逻辑的更简洁的方法:
SUMQ=
CALCULATE(
SUM(MyTable[Revenue])
,ALLEXCEPT(MyTable, MyTable[Quarter])
)
ALLEXCEPT() 清除作为第一个参数传递的 table 的每一列的上下文,除了那些命名为参数 2,n 的列。
我在 Excel 2013 年有一个 PowerPivot table 运行,它从 SQL 查询中收集内容。 table 的简化摘录如下所示(实际 table 有超过 150,000 行):
ID Revenue Quarter
145 23,000 Qr2 2014
469 151,000 Qr1 2014
478 40,000 Qr2 2014
587 30,000 Qr3 2014
643 15,000 Qr3 2014
698 20,000 Qr1 2014
812 60,000 Qr2 2014
我需要 "Quarter" 列旁边的 DAX 公式,它会给出以下输出:
ID Revenue Quarter SUMQ
145 23,000 Qr2 2014 123,000
469 151,000 Qr1 2014 171,000
478 40,000 Qr2 2014 123,000
587 30,000 Qr3 2014 45,000
643 15,000 Qr3 2014 45,000
698 20,000 Qr1 2014 171,000
812 60,000 Qr2 2014 123,000
基本上,SUMQ 列将是一个计算列,它需要对 table 的所有行中的相应季度求和并报告该 SUM。当新数据添加到 table 时,SUMQ 列将自动更新。
我的研究让我找到了 DAX 中的 SUMX 公式,但我很难尝试在我的模型中实现它。
您可以使用以下内容创建计算列:
=
CALCULATE (
SUM ( [Revenue] ),
ALL ( MyTable ),
MyTable[Quarter] = EARLIER ( MyTable[Quarter] )
)
此处您要计算整个 table (ALL) 的收入总和,其中季度值是初始行上下文 (EARLIER) 中的值。 这种类型的模式通常用于 abc 分析。参见 http://www.daxpatterns.com/abc-classification/
我没有足够的声誉来评论上面的 post,但我想指出 ALLEXCEPT() 是实现此逻辑的更简洁的方法:
SUMQ=
CALCULATE(
SUM(MyTable[Revenue])
,ALLEXCEPT(MyTable, MyTable[Quarter])
)
ALLEXCEPT() 清除作为第一个参数传递的 table 的每一列的上下文,除了那些命名为参数 2,n 的列。