ピボットテーブルのフィルターで、特定の文字列を含まないものだけを表示させる
CSVデータ集計に、Excelのピボットテーブルを用いることがある。定例業務のためVBAでツールを作成して運用していたところ、ユーザー部門から
「〇〇という言葉が含まれる場合を除外したい」
というリクエストがあったので挑戦してみた。
業務の様子を疑似的に再現するために、今回も「なんちゃって個人情報」のお世話になる。
例えばピボットテーブルで、出身地を男女別に集計してみる。
このとき、なぜか「カレーの食べ方」で「せき止め派」を除外したくなったとする(例えばの話なので、せき止め派の皆さん御容赦ください)。
そこでまず、フィルターに「カレーの食べ方」を充ててみる。
すると、こうなる。
ここで「〇〇」を「除外する」があれば良いのだが、残念ながら見当たらない。
仕方ないので、マクロでは一つずつ確認して、見せるか見せないかを選択することにした。
Sub Test() Dim p As PivotItem For Each p In ActiveSheet.PivotTables(1).PivotFields("カレーの食べ方").PivotItems If p.Value Like "*せき止め派*" Then p.Visible = False Else p.Visible = True End If Next End Sub
実行してみたところ、せき止め派のチェックが全て外れていた。
一応、希望する動作は実現できたが、もっとスマートな方法は無いものか。
引き続き模索するとします。
参考まで。