2

在我的数据透视表的源表中;包含两列;一个是名字,另一个是分数。正如线程标题所暗示的,我想显示具有偶数分数的人的所有名称及其相应分数。

实现此目的的另一种方法是创建第三列并运行 IF 公式来检查哪些数字是奇数。然后将第三列包含到数据透视表中并将其用作过滤器。

但是有没有办法在不修改源的情况下做同样的事情?

4

1 回答 1

4

您可以遍历枢轴项目,然后将它们除以 2 以检查它们是否是偶数,如果不是,则简单地隐藏它们。请参阅此示例。请修改它以满足您的需要。另外,我还没有进行任何错误处理。我相信你可以照顾好它...

代码

Option Explicit

Sub HideOddNumbers()
    Dim ws As Worksheet
    Dim pvtItem As PivotItem
    Dim pvt As PivotTable
    Dim pvtFld As PivotField

    '~~> Change this to the respective sheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    '~~> Change this to the respective pivot name
    Set pvt = ws.PivotTables("PivotTable1")

    '~~> This is the column
    Set pvtFld = pvt.PivotFields("Scores")

    With pvtFld
        .CurrentPage = "(All)"
        .EnableMultiplePageItems = True

        '~~> Loop through all items in the pivot and
        '~~> divide the values by 2 and check if they are even or not
        For Each pvtItem In pvtFld.PivotItems
            If Val(pvtItem.Value) Mod 2 <> 0 Then pvtItem.Visible = False
        Next
    End With
End Sub

截屏

之前

在此处输入图像描述

之后

在此处输入图像描述

于 2012-10-22T10:06:39.387 回答