1

我遇到了 Excel 数据透视表和 DataRange 行为的难题。当没有 Column 字段时,它似乎无法按预期工作。我想从 Row 项目中选择与一个特定 PivotField 关联的所有数据单元格,我该怎么做?

假设我有以下数据表:

a   b   x   y   z
A   A   1   9   0
A   B   2   10  0
A   C   3   11  0
A   D   4   12  0
B   A   5   13  0
B   B   6   14  0
B   C   7   15  0
B   D   8   16  0

我以表格形式创建了一个简单的数据透视表,其中包含两个行项(a,b)和一个值项(x 的总和)。然后是 PivotField aA 的 DataRange

ActiveWorkbook.ActiveSheet.PivotTables(1).PivotFields("a").PivotItems("A").DataRange.Select 

选择以下单元格(标有 Asterix):

a   b   Sum of x
A   A   *1
    B   *2
    C   *3
    D   *4
B   A   5
    B   6
    C   7
    D   8

伟大的!但奇怪的地方来了。将另一个值项 (y) 添加到数据透视表时,相同的代码会选择以下单元格:

a   b   Sum of x    Sum of y
A   A   1           9
    B   *2          10
    C   *3          11
    D   *4          12
B   A   *5          13
    B   6           14
    C   7           15
    D   8           16

这有什么意义?但是,如果我添加一个虚拟 Column 项目 (z),那么结果就是我在前一个场景中所期望的:

        z   Values
        0
a   b   Sum of x    Sum of y
A   A   *1          *9
    B   *2          *10
    C   *3          *11
    D   *4          *12
B   A   5           13
    B   6           14
    C   7           15
    D   8           16

但我真的不想添加一个假人来完成这项工作。还有其他方法可以使此选择对我有用吗?

提前致谢!

4

1 回答 1

0

有趣的问题。我从来没有注意到这一点。

在 Excel 2007 或更高版本中创建数据透视表时,我做的第一件事就是在数据透视表选项菜单中选择“经典数据透视表布局”:

在此处输入图像描述

我已经这样做了足够长的时间,以至于我有点忘记了它解决的问题。但我现在知道它解决了这个问题!

于 2013-05-08T04:48:51.250 回答