在我的数据透视表的源表中;包含两列;一个是名字,另一个是分数。正如线程标题所暗示的,我想显示具有偶数分数的人的所有名称及其相应分数。
实现此目的的另一种方法是创建第三列并运行 IF 公式来检查哪些数字是奇数。然后将第三列包含到数据透视表中并将其用作过滤器。
但是有没有办法在不修改源的情况下做同样的事情?
在我的数据透视表的源表中;包含两列;一个是名字,另一个是分数。正如线程标题所暗示的,我想显示具有偶数分数的人的所有名称及其相应分数。
实现此目的的另一种方法是创建第三列并运行 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
截屏
之前:
之后: