在我的数据透视表的源工作表中;包含两列;一个用于名称,另一个用于分数。正如线程标题所暗示的那样,我想显示所有具有偶数分数的名称及其对应分数。
完成此操作的另一种方法是创建第三列并运行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/