作りたいシート名を一覧に用意しておいてすばやく複数のシートを作りたい、でも VBA は苦手 という方に向けて。
ポイントだけ読みたい方は、「[レポート フィルター ページの表示] をシート作成のために使う」のあたりからどうぞ。
ピボットテーブルの [行] エリアや [列] エリアにフィルター機能があって、アイテム (項目) を条件として選択して集計結果をフィルターできます。
[列] エリアや [行] エリアに配置されているフィールド以外の項目でフィルター (スライス) を行うときに [フィルター] エリアにフィールドを用意します。たとえばここでは、行ラベルや列ラベルとして使われていない [地域] フィールドを [フィルター] エリアに作成しています。
[レポート フィルター ページの表示] の動き
「このシートではエリアA」の集計結果を確認したいけど、こっちのシートではエリアBを見たい」というときには、ピボットテーブルの作成後に自分でワークシートをコピーして [フィルター] エリアの条件を指定します。
しかし、ピボットテーブルのある機能を使うと、[フィルター] エリアのアイテムごとにワークシートが用意され、条件も絞り込まれた状態のピボットテーブルが用意されます。ようは、シート名がフィルター条件になっているピボットテーブルが作られる、ということ。
- ピボットテーブル内にアクティブ セルをおいて、リボンの [ピボットテーブル分析] タブの [ピボットテーブル] グループの [オプション] の ▼ をクリックして、[レポート フィルター ページの表示] をクリックします。
- [フィルター] エリアに 1 つしかフィールドがない場合は、下図のダイアログ ボックスでそのまま [OK] をクリックします。複数のフィールドがある場合はシート名と条件を指定したいフィールドを選択してから [OK] をクリックしてください。
- シートが複製されて、[フィルター] エリアにそれぞれのアイテムが条件として指定されます。
[レポート フィルター ページの表示] をシート作成のために使う
Excel には、一覧の項目をもとに複数のワークシートをばーっと自動で作成するような標準機能はありません。もちろん VBA でコードをかけばできます。
VBA はちょっとハードルが高いな、でも作らないといけないシートがたくさんあるな、というときには、ピボットテーブルをワークシートを作成するために使う、というのも手かもしれません。
***
本来の目的とは違うのでスマートではないし、これであっという間に複数シートができます!っていう言い方はしたくないけど、上手に付き合うのならありかな、という感じです。
***
- シート名としたい項目だけをテーブルにまとめて、このテーブルをデータソースとしてピボットテーブルを作ります。あとで消してしまうピボットテーブルなので作成場所は新規ワークシートでも既存のワークシートでもよいです。
- ピボットテーブルの [フィルター] エリアにフィールドを作成します。
- ピボットテーブル内にアクティブ セルをおいて、リボンの [ピボットテーブル分析] タブの [ピボットテーブル] グループの [オプション] の ▼ をクリックして、[レポート フィルター ページの表示] をクリックします。
- [レポート フィルター ページの表示] ダイアログ ボックスでフィールドを選択して [OK] をクリックします。
- シートが複製されて、[フィルター] エリアにそれぞれのアイテムが条件として指定されます。
- [レポート フィルター ページの表示] によって作成されたワークシートをすべて選択してグループ化します。
- 不要なピボットテーブル (と、それが含まれる列) を削除するため、ピボットテーブルを含む列を選択して、リボンの [ホーム] タブの [編集] グループの [クリア] - [すべてクリア] を実行します。
- ピボットテーブルがクリアされ、列を選択して右クリックしたときに [削除] が実行できるようになります。
- [レポート フィルター ページの表示] を使うために作った最初のピボットテーブルを含むワークシートを削除します。(おそらくないと思うけれど、余計なワークシートのグループ化は解除しておきましょうね。)
- (結果的に) 一覧に用意した名前を設定した複数のワークシートが作成されます。
途中でも書きましたが、複数シートをあっという間に作る機能です!っていうのは違う気がして。そんなわたしのこだわりなんてどうでもよいのかもしれませんが、キャッチ―なだけっていうのはどうも好きではないです。
しかし、そもそもこの機能を知らないという方もいらっしゃって、ピボットテーブルのために使いたい!ということもあると思うのでご紹介しました。
石田 かのこ