[英]Excel 2010 PowerPivot - Using a PivotTable result as the input for a second PowerPivot
假设我在SQL Server数据库中有下表,我想在Excel PowerPivot( Excel 2010版本 )上执行:
Date: Grp: Value:
1-Jan a 1
1-Jan a 2
1-Jan b 3
1-Jan c 4
2-Jan a 5
2-Jan b 6
2-Jan a 7
2-Jan b 8
2-Jan c 9
它的工作方式是,由于缺乏更好的措辞,我需要双重支点。
我需要做的是:
Sum(Value)
按Date
和Grp
输出:
Date: Grp: Value:
1-Jan a 3
1-Jan b 3
1-Jan c 4
2-Jan a 12
2-Jan b 14
2-Jan c 9
那么,我需要对这个数据执行另一个计算(除了sum()
) - 对于每天得到的值的乘积:
输出2:
Grp: Value:
a 36
b 42
c 36
所以,我知道如何使用PowerPivot获取第一组结果,我猜我可以为每个组值创建一个具有许多重复值的计算字段,以便立即计算Output2
,但我想知道是否有办法可能会输出第一个输出,然后使用生成的数据透视表作为PowerPivot的输入。
总的来说,我是PowerPivot的新手,所以任何有关如何做到这一点的建议都会非常感激!!
谢谢!!
约翰 ,
有一个称为Summarize的简洁函数,它允许您“在运行中”创建一个表,该表可以在FILTER参数或任何其他需要TABLE的 DAX函数中传递。
我已复制了您的示例数据(表名为basetable ),如果您运行下面的代码,您应该得到与Output1相同的结果(我建议您使用Dax Studio )。
SUMMARIZE (
basetable,
'basetable'[Date],
'basetable'[Grp],
"Value", SUM('basetable'[Value])
)
现在对于Output2 - 计算Grp值的产品很棘手,因为没有PRODUCTX功能。 但要获得每日平均值,您可以使用:
AVERAGEX
(
SUMMARIZE (
basetable,
'basetable'[Date],
basetable[Grp]
)
, CALCULATE(AVERAGE(basetable[Value]))
)
然后结果看起来像这样(保持与Output1相同的结构,但使用Output1执行平均计算)。
不确定我是否完全回答了你的问题,但我确信当你谈到“输出第一个输出的方法然后使用生成的数据透视表作为PowerPivot的输入时”时,需要考虑SUMMARIZE 。
但是,请注意与性能相关的问题 。 SUMMARIZE可能非常“苛刻”:)
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.