【Excelステップアップ】ピボットテーブルをマスターして、データ集計の達人になる:Tech TIPS
Excelを使って、日別の製品の売り上げなどを集計することはないだろうか。この際、さまざまな条件で並べ替えて、関数などを駆使して集計しているのであれば、ちょっと待ってほしい。Excelには、ピボットテーブルという便利な機能がある。この機能を使えば、簡単に集計が行える。その方法を紹介しよう。
対象:Office 2013/2016/2019/365
![新型コロナウイルス陽性患者を年代別で集計してみた](https://image.itmedia.co.jp/ait/articles/2006/11/wi-excelpivot01.png)
新型コロナウイルス陽性患者を年代別で集計してみた
東京都が公開している新型コロナウイルス陽性患者のデータをExcelのピボットテーブル機能を使って、2020年6月8日現在の患者の年代と人数をグラフ化してみた(データは、「東京都_新型コロナウイルス陽性患者発表詳細」ページでダウンロード可能)。ピボットテーブルを使うと、こうしたグラフが数ステップで作成できる。
営業やマーケティング、製品開発といった仕事の中で、製品の売り上げを集計しなければならないことも多いのではないだろうか。ただ、売り上げの報告は、日付と商品名、販売個数といったもので、これらを整理しないと、せっかくのデータが活用できない。このように世の中にあるデータのほとんどが未整理な状態で見やすい形には整形されていない。
こうした「生データ」を見やすく整理するというのも、「Microsoft Excel(エクセル)」でよく行われている仕事だ。こうしたデータ集計作業は、これから説明する「ピボットテーブル(Pivot Table)」を使うと、Excelが生データの大半の整理を自動的に行ってくれ、作業を大幅に省力化できる。さらにピボットグラフ機能は、ピボットテーブルをグラフ化する機能で、整理したデータを分かりやすいグラフの形で見せてくれる。
ピボットテーブルは、かなり高度な機能なので、使う側にも少々理解が必要になる。ただし、一回原理を覚えてしまえば、何ということはない。
度数分布表(ヒストグラム)を作るために、データを再構成し、並べ替え、集計のためにCountIf関数やFrequency関数などを使ったこともあるだろう。しかし、そうしたデータの整理方法は、今日で終わりにした方がよい。ピボットテーブルを使えば、元データを再構成して、数式を入れる必要もなくなるからだ。
ピボットテーブルの超簡単理解
ピボットテーブルとは、未整理の「生データ」の表を整理された表に変換する機能である。生データとは、例えば「英語のテスト結果」などのようにあることがらについての複数のデータをまとめたものだ。1行に1件のデータを入れた「記録(レコード)」を縦に並べて作った表といってもいい。Excelでは、レコードの並びは縦でも横でもいいのだが、ここでは話を簡単にするために、ここでは1つのレコードは1行になっているとする。
世の中には、このような生データが多数ある。例えば、学校のテストの成績、商品の売り上げ情報、コンピュータのログファイル、測定装置が出力する測定結果のデータなどである。
また、複数の生データが個別の表などとして存在し、これをまとめて処理対象とすることがある。学校には、各教科に担当の教師がいて、それぞれのテストは、担当教師が集計する。しかし、生徒全体を見るような場合には、各教科のテスト結果をまとめて1つの表にする必要がある。このような場合、多くの人は、1行に一人の生徒の複数科目の成績を並べた「整理された表」を作るだろう。しかし、ピボットテーブルが使えるようになれば、単に複数の表をつなぎ合わせておけばよく、整理された表はピボットテーブルに作成させることができる。
![ピボットテーブルを使う場合表を縦につなげればいい](https://image.itmedia.co.jp/ait/articles/2006/11/wi-excelpivot03.png)
ピボットテーブルを使う場合表を縦につなげればいい
3つのシートを1つにまとめるといった場合、多くのユーザーは、整理された表を作ってしまうが、ピボットテーブルを使えるなら、単に縦につなげた表を作るだけでいい。
未整理の「生データ」を簡単に整理された表に変換できるのがピボットテーブルだ。単純なデータから構成される表に対して、ピボットテーブルを作成することで、自動的に整理、集計された表を作成できる。また、表の組み替えも設定だけで簡単に行え、縦横の項目を入れ替えるといったことも簡単だ。
![ピボットテーブルでは元データを自動で解析](https://image.itmedia.co.jp/ait/articles/2006/11/wi-excelpivot04.png)
ピボットテーブルでは元データを自動で解析
ピボットテーブルは元データを自動で解析して表を作成するため、ユーザーは、元データに関する情報(上記のデータなら販売数の最大値や最小値、日付の開始、終了日時、商品数など)を事前に調べる必要もない。
そもそも、一般的に表とは、左端の「行」の項目、上部の「列」の項目と、行と列に関係する「値」から構成されている。生データの場合、列の項目を持つ1件の行が縦に並ぶ構造を持つ。
![ピボットテーブルで指定する「行」「列」「値」](https://image.itmedia.co.jp/ait/articles/2006/11/wi-excelpivot05.png)
ピボットテーブルで指定する「行」「列」「値」
ピボットテーブルでは、表を一般化して「行」「列」「値」の3つの部分の組み合わせにする。それぞれに表示させたい元データの項目を指定するだけで自動的に整理された表を作る。
これに対して、整理された表は、生データ側の列を集計するなどして、合計値などを求めたものになる。つまり、生データと整理された表の間には一定の関係がある。ピボットテーブルは、こうした元データの項目が「行」「列」「値」のどれになるのかを指定することで、自動的に整理された表を作り出すというものだ。
![元データと作成されたピボットテーブルの関係](https://image.itmedia.co.jp/ait/articles/2006/11/wi-excelpivot06.png)
元データと作成されたピボットテーブルの関係
元データと作成されたピボットテーブルの間には、「行」「列」「値」の関係がある。日付の範囲や商品が何種類あるのかなどは、Excelが生データを基に自動的に判断してくれる。さらにピボットテーブルは日付のグループ化や小計、総計などを自動的に追加する機能を持つ。
ピボットテーブルを使う
まずは、簡単にピボットテーブルの使い方を説明しよう。ピボットテーブルは、リボンの[挿入]タブの左端にある「ピボットテーブル」で起動する。
この[ピボットテーブルの作成]ダイアログには、元データの範囲を指定する部分があるので、あらかじめ元データを選択して起動してもいいし、起動してから元データの範囲を選択しても構わない。ただし、後の作業を考えると元データの一番上の行には項目名が入っているのが望ましい。というのは、項目名を使ってピボットテーブルの設定を行うからだ。
もう1つの設定項目は、どこにピボットテーブルレポートを置くかだが、これは、新規のワークシートも指定できるし、元データのあるワークシートや他のワークシートなど既に存在しているワークシートを指定することも可能だ。
[OK]ボタンを押してダイアログを閉じれば、指定したピボットテーブルレポートの配置先に「レポートを作成するには、………」という案内が表示される。実際の設定はここではなく、Excelウィンドウの右側に表示される「ピボットテーブルのフィールド」欄で行う。ここには、既に元データにある項目名が登録されている。この項目名を「行」「列」「値」へそれぞれドラッグすれば、ピボットテーブルが自動的に作成される。
どこにどの項目をドラッグするかで、ピボットテーブルの構造が変わってくる。なお、ピボットテーブルでは、日付データ(Excelのシリアル値)の項目は、自動的に「月」でグループ化される。このため、元データの「日付」項目を「行」、または「列」に入れると自動的に各月にまとめられた表示が可能になる。
とはいえ、最初はどういうものができるか分からなくて不安に感じることもあるだろう。だったら、リボンの挿入タブにある「おすすめピボットテーブル」を使って見るとよい。これは、元データをExcelが解析して、適切と思われるピボットテーブルのパターンを提示してくれるというものだ。
[おすすめピボットテーブル]ダイアログの左側には推奨パターン、また右側には選択したパターンで作られるピボットテーブルのプレビューが表示される。
作成されたピボットテーブルにアクティブセルを置けば、設定(前述の「ピボットテーブルのフィールド」欄)が表示されるので、行や列などに何が設定されたのかを見ることができる。
度数分布表を作る
では、実際にデータ分析で比較的よく使われる度数分布表をピボットテーブルで作ってみよう。前出の例と同じく「日付」「商品」「販売数」からなる元データからピボットテーブルを作成し、「列」に「商品」を、「行」には「販売数」をドラッグする。そして「値」にも「販売数」を入れるが、ドラッグした後、クリックしてメニューから[値フィールドの設定]を選び、[選択したフィールドのデータ]ダイアログで「個数」を選ぶ。
これにより、「値」はデフォルト設定の「合計値」ではなく、同じ販売数のレコードが何個あったのかがセル値として使われるようになる。行が「1」で列が「メロンパン」の値は、「メロンパンの販売数が1」だった日が何回あったかを示すことになる。
Copyright© Digital Advantage Corp. All Rights Reserved.