如何在Excel 2003中隐藏透视项目,但将其包含在总计中

如何在Excel 2003中隐藏透视项目,但将其包含在总计中,excel,excel-2003,vba,Excel,Excel 2003,Vba,在Excel 2003中,我试图创建一个工作簿“数据透视表更新”子项,该子项对数据透视表实施限制,使特定行字段的特定数据透视项永远不可见,但仍必须有助于小计和总计 我知道有一个设置“小计隐藏页面项目”,如果字段是页面字段,则允许发生这种情况。我还知道如何强制轴项目可见或不可见: Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable) Dim pvtField As

在Excel 2003中,我试图创建一个工作簿“数据透视表更新”子项,该子项对数据透视表实施限制,使特定行字段的特定数据透视项永远不可见,但仍必须有助于小计和总计

我知道有一个设置“小计隐藏页面项目”,如果字段是页面字段,则允许发生这种情况。我还知道如何强制轴项目可见或不可见:

Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
    Dim pvtField As PivotField
    Dim pvtItem As PivotItem
    Set pvtField = Target.PivotFields("Specific Field")
    If pvtField.Orientation = xlRowField Then
        Set pvtItem = pvtField.PivotItems("Specific Item")
        pvtItem.Visible = False
    End If
End Sub
但我不知道是否可以将其置于用户看不到的状态,但它会继续对数据透视表中的小计和总计做出贡献


除了遍历数据透视表的行并将行高设置为0之外,是否存在数据透视项的状态或操纵Excel计算总计的方式来完成此操作的方法

我会说答案是“不”

我甚至从未注意到您提到的“隐藏页面项目小计”功能。读到这篇文章,听起来似乎这只适用于OLAP多维数据集,尽管对于Excel2003来说这是否属实还不清楚。(我使用的是Excel 2010,他们在其中稍微更改了名称。)出于好奇,页面字段设置是否适合您,您是否使用OLAP多维数据集

无论如何,我相信最好的方法就是将行的
Hidden
属性设置为true,正如您已经指出的那样


不是你问的那样,但是这种设计似乎会让用户感到困惑。

我要说的是答案是“不”

我甚至从未注意到您提到的“隐藏页面项目小计”功能。读到这篇文章,听起来似乎这只适用于OLAP多维数据集,尽管对于Excel2003来说这是否属实还不清楚。(我使用的是Excel 2010,他们在其中稍微更改了名称。)出于好奇,页面字段设置是否适合您,您是否使用OLAP多维数据集

无论如何,我相信最好的方法就是将行的
Hidden
属性设置为true,正如您已经指出的那样


不是你问的,但这种设计似乎会让用户感到困惑。

我很害怕。我没有使用OLAP源,“小计隐藏页面字段”适用于非OLAP源。我同意这将是一个令人困惑的设计。问题是我有两个字段A和B,这样B就意味着A,而不是相反。我现在要做的是为每个B计算数据中的“A总计”行,将这两个行都包含在透视表中,并关闭小计。这就有一个问题,即无法仅按“A总计”值进行排序。我的想法是,不使用“A总计”B行,而是隐藏“A小计调整”B行,这样排序就可以在A上工作。我担心这一点。我没有使用OLAP源,“小计隐藏页面字段”适用于非OLAP源。我同意这将是一个令人困惑的设计。问题是我有两个字段A和B,这样B就意味着A,而不是相反。我现在要做的是为每个B计算数据中的“A总计”行,将这两个行都包含在透视表中,并关闭小计。这就有一个问题,即无法仅按“A总计”值进行排序。我的想法是,不用“A总计”B行,而是隐藏“A小计调整”B行,这样排序就可以在A上工作。