情報リテラシー実習Ⅰ 遠隔授業
テーマ:ピボットテーブルを学ぶ
この授業では、データを多面的に解析できる表を簡単に作成できる機能である「ピボットテーブル」について学びます。
授業の課題で利用することはないと思いますが、実務上で役に立つ機能でもありますので、使い慣れてください。
ピボットテーブルとは
ピボットテーブルとは、Exce(エクセル)lに搭載されたデータ集計・分析ツールの一つです。ピボット(pivot)とは「回転軸」、テーブル(table)とは「表」を表す英単語で、大量のデータから自分が見たい項目を軸に、集計表を作成することができる機能です。
複雑な数式なしに売上集計、商品別分析、月別推移などを瞬時に作成できます。
データの準備
pos_data.xlsxという、架空の店舗のデータを用意しましたので、ダウンロードして開いてください。
データ作成のルールとしては
- 項目名を1行目に入力する
- 縦方向(列)には同じ種類のデータを入力する
- 1件のデータを1行に入力する
となります。
まず最初に集計に使う元データを紹介します。今この売上データのシートに、このような値が貼られています。「いつ、どの店舗で、どういう商品が、どれだけ売れたのか」。今回販売している商品は、アパレルショップなんかで売っているような服とかですね。そういったものなので、商品ごとのカテゴリとか、カラーとかっていうのも入ってますね。
そして、このデータ日付には、2024年の1月から2025年の12月までの2年間分のデータが入っています。
テーブル化
テーブルとして範囲に名前をつけておくことで、範囲指定がしやすくなります。
テーブルの作成
- 開いたpos_data.xlsxのデータが入っているセルをクリックして選択します。
- 「Ctrl」キーを押しながら「A」キーを押すと、データの最下行まで選択されます。
- セルが選択された状態で、「挿入」リボンから「テーブル」を選択し、「先頭行をテーブルの見出しとして使用する」にチェックが入っていること確認して「OK」を押します。
- 「テーブルデザイン」のタブの左、「テーブル名」の欄に「テーブル1」など表示されていますので、わかりやすい名前に変更しておきます。ここでは「売上データ」としておきます。
ピボットテーブルの作成
- テーブル内のどこかのセルを選択した状態にする
- 「テーブルデザインのタブの「ピボットテーブルで集計」のボタンを押します。
- ピボットテーブルの作成という画面が出てきます。データを選択というところは、先ほど選択した範囲が自動的に選択されています。そして、ピボットテーブルの出力先は、新規ワークシートを選び「OK」ボタンを押します。
各部の名称
「Sheet1」というシートができ、シート上に「ピボットテーブル」と表示された枠、画面右側には「ピボットテーブルのフィールド」作業ウィンドウが表示されます。
作業ウィンドウには「フィールドリスト」と「ボックス」があります。
このフィールドというのが、先ほどの「売上データ」のテーブルのヘッダーの名前と、そのまま対応している状態です。このフィールドをドラッグして、値とか行とか列とかフィルターとか、この4つのエリアにドラッグ&ドロップして、集計表を作っていくということになります。
また、リボンには「ピボットテーブルの分析」と「デザイン」の二つのタブが表示されます。ピボットテーブルの枠以外のセルを選択すると、それらの作業ウィンドウやタブは非表示になります。

表示の変更
商品別売上集計をしたい場合を例に挙げて解説します。
- フィールドリストから「商品名」フィールドを「行」ボックスにドラッグ&ドロップ
- 集計したい値である「売上」フィールドを「値」ボックスにドラッグ&ドロップ
- シート上のピボットテーブルの枠に、商品ごとの売上集計結果を求めた表が作成される
1.売上の合計
まず最初に基本的な集計表ということで、合計の売上額を集計してみたいと思います。ピボットテーブルは、集計するのが、基本の機能になります。最初は「売上」というフィールドです。こちらを合計したいので、
- 「売上」というフィールドを、この「値」のところにドラッグ&ドロップします。そうすると、このピボットテーブルに合計の売上額が表示されます。
これだけであれば、「SUM関数」を使って数式作って合計しても同じですが、ピボットテーブルの場合は、このように集計によって求めた1つの値を、縦とか横に細かく分けていくことができるのです。
- 次に、これを店舗別に分けて表示してみましょう。
店舗別に分けるためには、この「店舗名」というフィールドをドラッグして、行のところに配置します。
- すると、店舗別に集計された、「合計/売上」が表示されます。
- 見出しのところに「行ラベル」と表示されています。
デフォルトでは「コンパクト形式」になっているのですが、このままではわかり難いので変更してみましょう。
- 「デザイン」タブに切り替え、左の方にある「レポートのレイアウト」をクリックし。リストの中から「アウトライン形式で表示」を選択します。
これで見出しが「店舗名」に変わります。
- 今この縦の並びですが「、「店舗名」で昇順ソートされている状態です。
これをこの合計売上の金額が大きい順に並べてみます。
この「合計/売上」の数値のセルのうち、どれでもいいので、右クリックして、「並べ替え」で「降順」を選択します。
そうすると、店舗名が売上の大きい順に並びます。
- ピボットテーブルを使えば、マウス操作だけで、簡単にこのような集計表が作成できます。
- 行:店舗名
- 列:
- 値:売上
2.数量の合計
- 先ほどの「売上データ」のシートに戻り、テーブルのどこかのセルを選択した状態で、テーブルデザインのタブの「ピボットテーブルで集計」のボタンを押します。新規でピボットテーブルを作成します。
- 先ほどは、売上の金額を合計しましたが、今度は販売数量を合計する集計をしてみます。まず、値ボックスに「販売数量」のフィールドをドラッグします。そうすると、合計販売数量の集計値がピボットテーブルによって作成されます。
これを今度は、商品名で縦に分けてみます。やり方はさきほどと一緒で、この行ボックスに、「商品名」のフィールドをドラッグします。
- 合計の販売数量の、この集計値が縦に商品名でズラッと分かれました。
- 「商品名」の名前で昇順ソートされてる状態になっているので、「合計/販売数量」の多いもの順に並び替えてみましょう。
- 「合計/販売数量」の数値があるセルの、どれかを右クリックして、並べ替え、降順。
これで販売数量の大きい順に、商品が並びました。
- 単純に商品名で縦に並べてしまうと、どういうジャンルの商品がよく売れているのかが、不明です。
そこで、これらの商品を、この商品カテゴリーでまとめてみます。
- 今ピボットテーブルの行ボックスに、「商品名」のフィールドが配置されていますが、商品カテゴリーのフィールドを、この行ボックスの「商品名」の上にドラッグして配置します。
- するとまず「商品カテゴリー」で「合計/販売数量」を分けて、さらにその中で、もっと細かく「商品名」で分けるという、段階的にこの合計の販売数量を縦に分けていくという構造の集計表ができあがります。
- 「商品カテゴリー」の方も、この「合計/販売数量」が大きい順に並べてみます。
「合計/販売数量」の数値のセルを右クリックして、並べ替え、で、「降順」を選択します。
- これで売上の大きい「商品カテゴリー」順に並び変わります。
- 行:商品カテゴリー
商品名
- 列:
- 値:販売数量
3.数量と売上げを列に
先ほどまでは、合計の売上であったり、合計の販売数量であったり、集計するフィールドは1つだったのですが、今度は、「販売数量」と「売上」、この両方を同時に集計した表を作ってみます。
- これまでと同様に、新規シートにピボットテーブルを作成します。
- 値のボックスに、「販売数量」と「売上」、2つのフィールドを入れます。
- 「合計/販売数量」と「合計/売上」という、各フィールドごとに合計された値が2つ並びます。
- 次に、縦にカラーで分けてみます。すると、どういう色の商品が売れ行きが良いのかを調べられます。
- 行ボックスに「カラー」のフィールドをドラッグします。そうすると、それぞれ「合計/販売数量」と「合計/売上」が、縦に「カラー」で分かれました。
- 今は値ボックスの中に、フィールド2つ配置しましたけれども、もっと集計した値を増やしたいとかであれば、フィールドをどんどん追加することもできます。
- 同じフィールドを追加することもできます。
値ボックスに、「売上」をもう1つドラッグ&ドロップして追加します。そうすると、「合計/売上」と同じ値の「合計/売上2」というフィールドが、ピボットテーブルの横に追加されます。
数値はまったく一緒です。
- この2つ目に追加した売上のフィールドに関しては、集計方法を合計ではなく、平均にしたいとかであれば、この「合計/売上2」の数値のセルのどれでもいいので、右クリックして、「値の集計方法」を「平均」にします。すると売上のフィールドの値を平均した集計値にすることができます。
- 「平均/売上2」と、「2」の部分が残っているので、F2のキーで編集モードにして、「2」を削除します。
- 行:カラー
- 列:
- 値:販売数量
売上
売上/平均
4.商品別・カラー別の複数集計
先ほどの集計表では、どういうカラーの商品の売上がいいのか、よく売れてるのかというのは、分かりましたが、こんどは商品ごとに縦に分けて、さらにその中でカラーで分けてどの商品はどの色が売れているか見ることができます。
- いままでは新規でピボットテーブルを作成していましたが、コピーすることもできます。シートのタブをコントロールのキーを押しながら、右にマウスでドラッグすると、シートごとピボットテーブルがコピーされます。
- 先ほどの集計表で、どういうカラーの商品の売上が良いのか、よく売れてるのかというのは、分かりましたが、全ての商品でこのカラーが売れているのではなく、商品によっては、全然違うカラーが売れてるかもしれません。
- そこで、この「合計/販売数量」、「合計/売上」、「平均/売上」、この集計値を、商品ごとに縦に分けて、さらにその中でカラーで分けるようにしてみます。
- 集計値を縦に分けたいので、「商品名」のフィールドを行ボックスのこの「カラー」の上に配置します。そうすると、3つの集計値が縦に商品名で分かれ、さらにその各商品の中でカラーで分かれるという順番になります。
- 先ほど、この合計売上の大きい順にカラーを並べ替える設定はしたのですが、この「商品名」の方を売上の大きい順に並べ替える設定はしてないので、「商品名」の方は「売上」が大きい順になっていません。そこで、商品名も売上が大きい順になるように並べ替えていきます。
- 商品名が表示されている行の「合計/売上」のセルを右クリックして、「並べ替え」で「降順」を選択します。すると、「商品名」の方も売上大きい順に並びます。
- こうして商品別カラー別で並べ替えてみると、大体どの商品はどのカラーの売上がいいということが分かります。
そして、場合によっては、別の色が上に来ている商品もあったりするということが分かります。
- 行:商品名
カラー
- 列:
- 値:合計/販売数量
合計/売上
平均/売上
5.商品カテゴリー別・月別売上(クロス集計表)
ここまでは、それぞれ集計した値を、縦に展開していましたが、横展開はしていませんでした。次は、縦だけでななく、横展開してみたいと思います。
- 先ほどのシートをコピーして、シートの名前は「カテゴリー別・月別売上」に変更します。
そして、各ボックスに配置されているフィールドは一旦全部外してしまいます。
- まずは合計売上を集計したいので、値ボックスに「売上」のフィールドをドラッグします。
- 商品カテゴリーで縦に分けてみます。「行ボックス」に「商品カテゴリー」のフィールドをドロップします。
- このカテゴリーを売上大きい順に並べたいので、「合計/売上」の集計値のセルのどれかを右クリックして、並べ替え→降順。ここまでは先ほどまでと一緒で、縦に集計されています。
- 今度は、この「合計/売上」を横に、月ごとに展開して、これらカテゴリーの商品が、どの月によく売れてるのかを調べてみます。
- 集計値を横に展開するためには、この列ボックスにフィールドを配置します。今回、月で横に展開したいのですが、「月」というフィールドがありません。このフィールドリストに並んでる値は、元のデータソースの、この列がフィールドになってるので、ここに月というフィールドが存在しないと、ピボットテーブルのフィールドリストには「月」は表示されません。
- 実現するための方法の一つには、この販売データのテーブルに「月」という列を追加して、数式を使って、「MONTH関数」で、この日付の月を求めます。その後、ピボットテーブルを更新すると、この「月」というのが、フィールドリストに出てきますので、この月を使うことができます。
- しかし、企業によっては元データに変更を加えることを制限されている場合もあります。
そこで、ここではピボットテーブルのグループ化の機能を使って、この日付のフィールドから、「月」のフィールドを作ってみます。
- 列ボックスに「日付」のフィールドをドロップします。そうすると、ピボットテーブルのヘッダーが、大きくなりました。
「列ボックス」を見てみると、「日付」のフィールドを、「列ボックス」に持ってきただけですが、ここの日付のフィールドのほかに、年とか四半期とか月とか、いろいろなフィールド名が追加されています。さらにこのフィールドリストにも追加されています。
- デフォルトの設定だとExcelが自動的にグループ化をします。
- ここでは「月」でまとめたいだけなので、グループ化の設定を変更します。
この横展開で使われている、「年」とか「四半期」とか「月」とかありますが、このどれかのセルを、右クリックして、「グループ化」を選択します。
- グループ化の設定ウィンドウが開いて、今「単位」のところが、「月」、「四半期」、「年」、という3つが選択されています。クリックするたびに選択、解除が変更されますので、「月」だけ選択された状態にします。
OKを押すと、日付のグループ化の設定が「月」だけになります。
- この縦と横に、集計値を簡単に展開できるっていうのが、ピボットテーブルの便利なところです。
- こういう風に月別に横に展開した集計表にしてみると、何月が売れてるのか判断できます。
- 行:商品カテゴリ
- 列:月(日付)
- 値:合計/売上
6.シーズンでまとめる
ここまでで、何月が売れ行き良いか分かったのですが、月ごとだと、ちょっと細かすぎるので、春、夏、秋、冬、というシーズンでこの月を、さらにまとめる方法を見てみたいと思います。
- シートをコピーします。
- 季節のまとめ方に関して、一般的な分け方として、3、4、5月が「春」、6、7、8月が「夏」、9、10、11月が「秋」、12、1、2月が「冬」という分け方にしてみます。
- さきほど、日付の「グループ化」の機能を使って、この「月」という単位でグループ化しましたが、、これをさらに、「シーズン」でグループ化したいのですが、この日付のグループ化の機能を使ってまとめた、「月」のグループをさらに「シーズン」でグループ化するという2段階のグループ化が出来ません。
ではどうするかですが、「売上データ」のテーブルに列を追加します。
- まず、元データのテーブルに「シーズン」という列を追加します。
- 「MONTH関数」によって、この日付の月を求めます。すると、日付から「月」を数値として抽出することができます。
- シーズンの列には1から12までの数値があります。
ここから、3、4、5月は「春」ですとか、6、7、8月は「夏」です、のようにに、この季節ごとにシーズンを振利分けます。
数式の作り方は色々あります。
ifとかifsを使って、条件分岐する方法もありますが、数式がややこしくなります。そこで今回は、「CHOOSE関数」を使って行ってみたいと思います。
- 「CHOOSE関数」の第1引数はインデックスとなっていますが、ここに「MONTH関数」で求めた月の数値を入れます。つまりこの第1引数には1から12までの数値が入ります。
- そして、この「CHOOSE関数」の第2引数以降に、その月に対応する季節を12個分列挙していきます。
- 1月は冬なので、ダブルクォーテーションで「冬」、これが1個目。
2月も冬なので、2個目も「冬」ですね。
3、4、5月が春なので、次は「春」、あと2ヶ月春が続きますから、2回コピーします。
次は「夏」、夏も3ヶ月分なので、2回コピーします。
次は「秋」、が3ヶ月続きます。2回コピーします。
最後のこの値12、12個目は、12月なので、「冬」と入力して完成です。
- これで月に応じて、「春」、「夏」、「秋」、「冬」のどれにあたるかが判定されます。
- これで販売データのテーブルに「シーズン」という列が追加されましたので、先ほどのピボットテーブルに戻ります。
- ピボットテーブルが自動更新に設定してあると、フィールドリストに「シーズン」が表示されますが、自動更新されていない場合には、ピボットテーブルを右クリックして更新を押してください。
すると、フィールドリストにテーブルに追加したシーズンの列が、フィールドとして表示されます。
- そして列ボックスの「月」の上に、「シーズン」のフィールドをドロップします。
- すると、まずシーズンで横に分けて、さらに各シーズンのなかで月で分かれるという2段階で横に展開することになります。
- 列の並びに関しては、いまこの漢字の音読みの振り仮名で昇順ソートされてる状態なので、「なつ」「あき」「はる」「ふゆ」となってますけど、この順番を手動で変更しておきます。
- 移動する場合には、今回は「春」を先頭にしたいので、「春」のセルを選択して、このセルの周りの枠線のところに、このマウスカーソルを持っていくと、カーソルが矢印の十字になります。この状態で、左クリックして、横にドラッグします。
- これで「春」「夏」「秋」「冬」の順番になりますので、これでどのシーズンに売上がいいのかを見ることができます。
- もしさらにこの季節の中で何月が特にいいんだろうというのを知りたい場合には、このボタンを押して展開してやれば、月ごとに展開されるので、この中でもさらに、何月が売上が良いか分析できます。
- 行:商品カテゴリ
- 列:シーズン
月(日付)
- 値:合計/売上
7.2年分のデータを年ごとに集計(店舗別・年別・増減)
先ほどまで作ってきた、ピボットテーブルの集計表ですが、実は「合計/販売数量」だったり、「合計/売上」だったりという集計値は、まるまる2年分集計してました。
そこでこの2年分の合算値ではなくて、2024年と2025年、各年の店舗ごとの売上がどうなっているのかを見てみたいと思います。
- シートをコピーして、一旦ここのボックスのフィールドは全部空にします。
- 今回集計するのは、売上の合計なので、「値ボックス」に「売上」のフィールドを追加します。
- これを縦に店舗ごとに分けます。「行ボックス」に「店舗名」のフィールドをドラッグします。店舗名は、合計売上が大きい順に並べたいので、「合計/売上」のセルを右クリックで並べ替え→降順とします。
- いま集計されてるこの「合計/売上」というのは、まるまる2年分となります。これを「2024年の売上」、「2025年の売上」のようにに横展開したいと思います。
- そのために、「列ボックス」に「年」っていうフィールドを配置したいのですが、今「年」のフィールドは、フィールドリストの中にありません。先ほど、グループ化の機能によって、日付を月単位でグループ化する設定をしましたが、そのときに年の単位を外してしまいました。
そこで、「グループ化の設定」で、「年単位」を、もう一回追加します。
- 一旦、「月」のフィールドを「列ボックス」にドロップします。そして、この月のどれかを右クリックして、「グループ化」を選択します。先ほど、単位を「月」だけにしてしまったので、「年」も選択します。
この状態でOKを押すと、「列ボックス」に「年」と「月」という2つが表示されます。
今回は月別で分ける必要がないので、「月」のフィールドを外します。
- これで集計した「合計/売上」が、横に年ごとに分かれた状態になります。
番右にこの「総計」の列があって、2年分合算されています、この「総計」は不要なので、ここの「総計」は消します。「総計」と書いてあるセルを右クリックして、「総計の削除」を選択します。
- 比較という意味では、この2つの年の差額を、増減としてここに追加したいと思います。
Excelの場合、一番簡単に実現する方法としては、ここに数式追加するというのが、単純で分かりやすいです。例えばここに、「=D4-C4」のように、セル参照で数式を入れ、これを下までコピーすれば、増減を数式で簡単に求めることはできます。
手っ取り早くやるんであればこれでもいいのですが、このやり方だと、もし店舗名が増えたり減ったりしたときに,ここの数式は自動的に、増えたり減ったりしてくれません。その都度自分でここの数式をコピーしたり、減らしたりとか、手作業の手間が発生してしまいます。
- そこで今回は、ピボットテーブルの機能で、増減額を表示したいと思います。
では今、「値ボックス」にこの「合計/売上」という集計値が、1つ既にあります、ここに同じ「売上」のフィールドをもう1つ追加します。すると「合計/売上2」という、同じ集計値が追加されます。「合計/売上」と「合計/売上2」は、完全に同じ値が表示されてるだけです。
この「合計/売上2」の方のセルを増減値に変えていきます。この「合計/売上2」として集計されている数値のセルのうち、どれでもいいので、右クリックしてみると、「計算の種類」が、「計算なし」にチェック入っていますが、「基準値との差分」を選択します。
- すると、こういう設定ウィンドウが開きます。この「基準フィールド」のところが、今「店舗名」になっていますが、年ごとの増減額を計算したいわけですから、「基準フィールド」を「年(日付)」にします。「基準アイテム」は、最初から選択されているこの「前の値」というのを、選択してやります。
OKを押すと、「自動並べ替えのオプションをオフにしてもいいですか」と聞かれますので、「はい」を押します。これを「いいえ」にしてしまうと、さっきの「基準値との差分」という設定が適用されませんので、注意して下さい。
「はい」を押すと、「合計/売上2」の数値が変わります。この数値は、2025年の売上から2024年の売上を引いた値になってます。つまり、ここが増減額となります。ちなみに2024年の場合は、前の年の売上がないので、増減なしで何も値出てこなくなります。
「合計/売上2」というヘッダー名のままだと分かりにくいので、F2のキーを押して編集モードにして、「増減」と変更します。すると、自動的に両方とも「増減」というヘッダー名になります。
- 行:店舗名
- 列:年(日付)
Σ値
- 値:合計/売上
増減