在我的数据透视表的源工作表中;包含两列;一个用于名称,另一个用于分数。正如线程标题所暗示的那样,我想显示所有具有偶数分数的名称及其对应分数。

完成此操作的另一种方法是创建第三列并运行IF公式以检查哪些数字是奇数。然后将第三列包括到数据透视表中,并将其用作过滤器。

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

最佳答案

您可以遍历数据透视项,然后将其除以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


屏幕截图

之前:



后:

关于excel - 筛选出数据透视表中的奇数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13008551/

10-09 03:31