2015年03月14日

これは便利!異なる名前の複数のシートを自動で作ってみた /Excel/ピボットテーブル

例えば、日付の名前の複数のシートを作ったり、社員の氏名毎のシートを作ったりとかあると思うのですが、予めシート名の一覧表を作っておけば自動で名前のついたシートを自動作成させることができます!
こんな感じ。
20150313_212.JPG

ピボットテーブルを使うのですが、今回はシートの自動作成が目的なのでピボットテーブルを使わない、使ったことがまだない、Excel初心者でも出来るような初歩的な解説をします。ピボットテーブルを使いこなしている人にはまどろっこしいかも知れませんが、応用の場面を考えながら見てください。

3月の日付毎のシートを作ってみます。
まず、"日付"と入力したセルの下に"3/1"と入力します。
20150313_201.JPG

「Enter」キーを押すと、日付と判断されて"3月1日"と表示されます。
そのセルの右下にマウスを合わせるとカーソルが"+"に変わります。
20150313_202.JPG

それをドラッグしたまま下に引っ張るとオートフィルで日付が連続で増えていく表示が現れます。
20150313_203.JPG

それを、3月31日になるまで引っ張って放すと3月31日まで日付の入力ができます。
20150313_204.JPG
あっ、ちなみに書式の設定で曜日も表示させることもできますよ。

3月1日のセルを選択して「挿入」、「ピボットテーブル」を選択します。
20150313_205.JPG

「ピボットテーブルの作成」画面が開きます。
何も変更せず「OK」します。
20150313_206.JPG

すると、日付を入力した「Sheet1」の前に新しいSheetが挿入されてピボットテーブルのシートが出来上がりました。
20150313_207.JPG

そこで、シートの右側の「ピボットテーブルのフィールドリスト」の"日付"を"レポートフィルタ"の中にドラッグ&ドロップします。
20150313_208.JPG

すると、こんな風なピボットテーブルが出来ました。
20150313_209.JPG

ピボットテーブルの"日付"を選択して「ピボットテーブルツール」、「オプション」、「ピボットテーブルオプション」から「オプション」の右側の▼を押して「レポートフィルタページの表示」をクリックします。
20150313_210.JPG

「レポートフィルタページの表示」画面が開きます。
そのまま「OK」します。
20150313_211.JPG

すると、あら不思議!?自動でシートが出来ちゃいました!!
20150313_212.JPG

この全てのシートにはそれぞれの日付のレポートフィルタのピボットテーブルが出来ています。シートを作るだけであればこのピボットテーブルは不要なので削除するのですが。。。
これが、すんなりと削除させてくれません。ので、、、
"3月1日"のシートの名前の上で右クリし「すべてのシートを選択」を選択します。
20150313_213.JPG

すると、シートの名前のタブがすべて選択状態になり白くなりました。
20150313_214.JPG

そこで、シートの左上をにカーソルを合わせると、白十字に変わります、そこでクリックするとシート全体が選択されます。
20150313_215.JPG

そこで右クリし「コピー」を選択します。
20150313_216.JPG

さらに右クリし「形式を選択して貼り付け」を選択します。
20150313_217.JPG

「形式を選択して貼り付け」画面が開きます。
「値」のラジオボタンを押して「OK」します。
20150313_218.JPG

すると、ピボットテーブルが無くなり表示だけがのこります。
20150313_219.JPG

その状態(シート全体が選択)のままで「Delete」キーを押して削除します。
これで、何もないシートができました。
20150313_220.JPG

最後に、シートの名前の上で右クリし「作業グループの解除」を選択し、すべてのソートの選択を解除してやれば完了です!
20150313_221.JPG

ピボットテーブルをまだ使ったことのない人はぜひこの機会に使ってみてください。Excelのスキルがレベルアップしますよ!


関連ページ
ピボットテーブルを作ってみた(更新や、用語の説目も)
レポートフィルタで特定のアイテムのデータを抽出してみた


posted by haku1569 at 18:49| Excelデータ分析 | このブログの読者になる | 更新情報をチェックする
' + adSrc + '<' + '/body>'); d.close(); } loadAd(); window.setTimeout(loadAd, reloadSec * 1000); window.setTimeout(function() {adDiv.style.display = 'none'}, hideSec * 1000); }); }