首页 > 解决方案 > 当时在同一张工作表上向下钻取 3 个单独的 OLAP 数据透视表

问题描述

我有一个数据源可以在同一张表 TCSum 上创建 3 个数据透视表。

这 3 个表彼此相邻排列,所有 3 个表在数据透视表字段中都有相同的两行,顺序如下:区域 - 市场。

我不希望 Region 列显示 3 次,所以我在 TCSum 表上隐藏了列 G 和 K。

我希望当我为我的第一个区域单击 A 列中的展开按钮时,它会展开所有 3 个表。

我发现让一张纸上的所有数据透视表在行扩展和折叠方面相互模仿。我在那里尝试了这两种方法,并且在更有效的方法中确实用 4 个不同的条目更新了这一行。

我试过了:

PivotFieldIndex = "Region"
PivotFieldIndex = "[Region]"
PivotFieldIndex = "Market"
PivotFieldIndex = "[Market]"

我尝试了 Region 和 [Region],因为我认为既然这已添加到数据模型中,正确的 PivotFieldIndex 可能需要包含它们。我通过在一个数据模型源和一个常规表源上记录一个宏来得出这个结论。

我还意识到常规数据透视表使用 ShowDetail,而 OLAP 使用 DrilledDown,所以我尝试用 DrilledDown 替换每个 ShowDetail,但没有成功。我将此数据添加到数据模型的原因是第三个数据透视表使用了折扣计数功能。

另一篇文章中的说明提到了带有数据透视表的表格需要在最左边,TCSum 是,但是当我在 Visual Basic 中查看时,我看到 Sheet3(TCSum),所以我也尝试替换

Set wks = wkb.Sheets(1)

Set wks = wkb.Sheets(3)

我想为什么不试试

Set wks = wkb.Sheets("TCSum")

当我单击任何行上的展开按钮时,我没有收到任何调试错误,但不幸的是,表 1 展开了。

TCSum 上的 3 个数据透视表被命名为:TCByType、TCAge、TCAffected(如果重要,它具有折扣计数)。

标签: excelvbapivot-table

解决方案


推荐阅读