四十三庵

蔀の雑記帳

Excelのピポットが使えるようになった瞬間に、世界に光が満ちて、病気が治って、会社の業績が三倍になった

タイトルの通りなんですけど、Excelのピポット機能ってすげー便利だなと思ったのでその紹介記事です。

ピポットを使うことになるケース

仕事してて、こんなデータがあったとするじゃないですか。
f:id:st43:20170731221630j:plain
このデータから、「商品名ごとの個数が欲しいけど、30分で出せるか?」(場合によっては何時〜何時まで)みたいなこと言われたら、あなたはどうしますか?
この例だと全部映ってないですが、実際は1000レコードくらい行がある。

たとえばだけど、商品名があらかじめ10個しかないとわかっていれば、countIf()とかでいいかもしれない。
10個の商品名を並べて、隣のセルに=countIf("A1",商品テーブル)とかいれて、千行ペロってコピーすればいいと思う。
ただ今回の場合、そもそも商品名の一覧なんてわかんなくて、そこから作成しないといけない、という前提。

マクロを書くのも一つの手だ。
けど実際のところ、VBA書いたりメンテしたりすんのはけっこう時間がかかる。
上手いこと再利用できればいいが、実際はその時々の特殊な状況で動けばいいやで組むから、
あのときは使えたけど、今回は微妙に違うみたいな場合が多い。

これまでの僕は、集計処理のためにマクロを書いていた。
最初は満足感があったが、だんだんほとんど再利用できていないことに気づいた。
そんなときに「発見」したのがピポットだった。

ピポットで1000件のデータを集計してみよう

実際にやっているところを見てみよう。
f:id:st43:20170731223725j:plain
まず、1000件のテーブルを選択して、ピポットテーブルを挿入する。

そうすると初見だとちょっと戸惑う感じのウィンドウが表示される。
とりあえず「列ラベル」と、「値」を商品名にしてみると……
f:id:st43:20170731223841j:plain
見事にやりたかった集計が完了した!

クロス集計とかもできる

これだけでも僕的にはけっこう使いみちあるなと思ったが、このようにクロス集計もできる。
f:id:st43:20170731224148j:plain
「EEEという商品が大阪ですごい売れてるなあ」というのが一目瞭然である。

ラベルの要素はいくらでも増やすことができるので、
「商品名」×「購入店」&「購入時間」というピポットテーブルもつくれる。
f:id:st43:20170731224421j:plain

フィルター機能とピポットでたいていの集計はできる

ピポットはすごいが、ピポットのすごさを享受するためには、
データがそれなりに整形されていないといけない。
その作業がけっこうしんどい。
でもまあフィルター機能使って、要らないレコードをうまいこと消していけば、いけると思う。

AIが人間の仕事を奪うと言われているが、「AIが分析しやすいように一次データを整形する作業」は絶対に残ると思った。今日。

あとがき

最初10万レコードでやろうとしたらExcel for Macが死んだので、
1万レコードでやりなおしてもやっぱり死んだので、1000でやりました。
うーん……
(了)