gpt4 book ai didi

Excel 2010 PowerPivot - 使用数据透视表结果作为第二个 PowerPivot 的输入

转载 作者:行者123 更新时间:2023-12-02 21:56:24 24 4
gpt4 key购买 nike

假设我在 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

它的工作方式是,由于缺乏更好的措辞,我需要对其进行双重旋转。

我需要做的是:

  1. 日期Grp返回Sum(Value)

输出:

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 for this )。

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 执行平均值计算)。

enter image description here

不确定我是否完全回答了您的问题,但我确信 SUMMARIZE 是当您谈论“一种 [...] 输出第一个输出,然后使用生成的数据透视表作为 PowerPivot 的输入的方法。”时需要考虑的事情。

但是,请注意performace-related issues总结可能相当“苛刻”:)

希望这有帮助!

关于Excel 2010 PowerPivot - 使用数据透视表结果作为第二个 PowerPivot 的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25876004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com