2

ピボットテーブルのソースシート。2つの列が含まれています。1つは名前用で、もう1つはスコア用です。スレッドのタイトルが示すように、すべての名前とそれに対応する偶数のスコアを持つ名前を表示したいと思います。

これを実現する別の方法は、3番目の列を作成し、IF式を実行して、どの数値が奇数であるかを確認することです。次に、この3番目の列をピボットテーブルに含めて、フィルターとして使用します。

しかし、ソースを変更せずに同じことを行う方法はありますか?

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 に答える