1

我在 Excel 2007 中开发了一个仪表板,它使用工作表中的一个源表(在我们的数据仓库中填充了一个查询)和多个数据透视表,在这些数据上形成不同的横截面。

我在近一百个公式中使用 GETPIVOTDATA 来为我的仪表板中的特定指标提供正确的值。

这一切都很好。但是,我现在收到了为 5 个不同部分制作仪表板的问题。正如您可以想象的那样,我不想为此创建 5 个不同的工作簿,并且需要在所有这些工作簿上维护仪表板逻辑。

所以我的问题如下。是否可以自动(通过 VBA 或任何其他方式)过滤我的源表中的结果,该表是我的数据透视表的源,因此也是我的仪表板值的源。

如此示意性地:

DATABASE_VIEW --> SOURCE_TABLE --> 12 个数据透视表 --> 100 个 GETPIVOTDATA 函数

最好我想加载 source_table 中的所有段(我的数据库上的一个视图),然后过滤源表中的数据,从而为我的枢轴过滤 source_dat。通过这种方式,我可以(无需重新查询数据库)在仪表板中的段之间快速更改(仅刷新数据透视表)。

源表中的数据具有可用于过滤的列:CUSTOMER_SEGMENT。

任何帮助表示赞赏。

杰弗里

4

1 回答 1

3

您可以通过 VBA 操作所有外部数据连接和内部数据透视表。

为了使它成为你的双重学习者,我建议使用“记录宏”按钮,然后更改数据透视表中的过滤器,并稍微更改 SQL 查询。

您现在将看到在录制的宏中说明了该数据透视表/查询的相关属性。过滤器和 SQL 只是 VBA 代码中的字符串,因此您可以更改某些位以获得不同的过滤器或"WHERE Cust_ID = " comboboxCust.Value类型的东西。

通过 VBA 代码来更改过滤器和 SQL 通常比让所有这些都与标准 Excel 工具(函数、参数、链接过滤器……)交互相关更快。

于 2012-12-14T18:13:46.453 回答