集計・分析の型
ピボットテーブル・QUERYレシピ・構成比/前年比/累計の数式・条件付き書式やSPARKLINEでの可視化・グラフ選び・3層分離のダッシュボード設計まで、業務ですぐ使える集計と分析の型を実例つきで体系的にまとめた実践章。
「集計」は道具の問題ではなく、型の問題です。 同じ売上明細でも、月別に積めば推移が見え、カテゴリ別に積めば構成が見え、月×カテゴリで組めば「どこが伸びてどこが落ちたか」が一目で分かります。本章は、業務で繰り返し登場する集計・分析を「すぐ貼れる型」として並べたパターン集です。関数そのものは 第5章 関数カタログ と 第6章 配列・スピル(QUERY) を土台にします。
この章で扱う型は次の7つです。
- ピボットテーブル — 対話的に集計を探索する
- QUERYレシピ集 — 月別・構成比・条件集計・クロス集計をコピペで
- 構成比・前年比・累計 — 比率と推移を出す数式の型
- 条件付き書式で可視化 — ヒートマップ・上位下位・数式ルール
- SPARKLINE — セル内ミニグラフ
- グラフの選び方 — 時系列・内訳・相関
- ダッシュボード設計 — 生データ/集計/表示の3層分離
数式は日本語ロケール前提で、引数の区切りは カンマ(,) です。利用可否や引数に迷ったら一次情報の 関数リスト(公式) を確認してください。
1. ピボットテーブル — 探索のための集計
ピボットテーブルは、明細データを マウス操作だけで集計し直せる 機能です。数式を書かずに「行・列・値・フィルタ」を入れ替えるだけで、集計軸を自在に変えられます。仮説が固まっていない段階の 対話的な探索 に最適です。
作り方と4つの領域
メニューの「挿入 → ピボットテーブル」で、集計したい範囲(見出し行を含む)を指定します。あとは右側のエディタで、見出し(列名)を次の4領域へドラッグするだけです。
| 領域 | 役割 | 例 |
|---|---|---|
| 行 | 縦に並べる切り口 | 部署、カテゴリ、担当者 |
| 列 | 横に並べる切り口 | 月、年度、地域 |
| 値 | 集計する数値 | 売上金額、数量 |
| フィルタ | 表示する範囲を絞る | 「2026年のみ」など |
「値」に入れた項目は、集計方法を 合計/個数(COUNTA)/平均/最大/最小 などから選べます。さらに「集計に対する割合」を選べば、構成比(全体に占める比率)も計算なしで出せます。同じ項目を「値」に2回入れて、片方を合計、もう片方を「総計に対する割合」にすると、金額と構成比を並べて見せられます。
計算フィールド
ピボットの中で 新しい計算列 を作りたいときは「計算フィールド」を使います。たとえば「粗利=売上−原価」を、ピボット上で ='売上' - '原価' のように定義できます(フィールド名はシングルクォートで囲みます)。元データに列を足さずに派生指標を出せるのが利点です。
2. QUERYレシピ集 — コピペで使える集計
QUERY はSQL風の構文で表を集計・整形できる関数です(基礎は 第6章 を参照)。ここでは そのまま貼って使える型 を集めました。以下は「A列=日付, B列=カテゴリ, C列=担当, D列=金額」の明細を想定します。日本語ロケールでは QUERY 内の各句の区切りに 半角スペース、関数引数の区切りに カンマ を使います。
月別の売上集計
QUERY 単体では月でまとめにくいため、作業列で「月」を作ってから 集計するのが堅実です。たとえば E列に =ARRAYFORMULA(IF(A2:A="","",EOMONTH(A2:A,-1)+1)) で月初日を作り、それを軸にします。
=QUERY({E2:E, D2:D}, "select Col1, sum(Col2) where Col1 is not null group by Col1 order by Col1 label sum(Col2) '売上'", 0)
月(E列)ごとに金額(D列)を合計し、古い月から並べます。
カテゴリ別の構成比
=QUERY(A2:D, "select B, sum(D) where B is not null group by B order by sum(D) desc label sum(D) '売上'", 0)
カテゴリ(B列)別に合計し、大きい順に並べます。
構成比は、出てきた集計表の隣に =D2/SUM($D$2:$D$100) のような数式を置くか、ピボットの「総計に対する割合」を使うのが分かりやすいです。
条件付き・複数条件の集計
=QUERY(A2:D, "select C, sum(D) where B = '消耗品' and D >= 10000 group by C order by sum(D) desc", 0)
カテゴリが「消耗品」かつ金額1万以上の行だけを、担当(C列)別に合計します。文字は シングルクォート で囲みます。
月×カテゴリのクロス集計(pivot)
QUERY の pivot 句を使うと、行に月・列にカテゴリ を展開したクロス集計表を1本で作れます。
=QUERY({E2:E, B2:B, D2:D}, "select Col1, sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0)
行=月(Col1)、列=カテゴリ(Col2、pivot で自動展開)、値=金額合計(Col3)。新しいカテゴリが増えても列が自動で増えます。
pivot は「列が動的に増える」点が SUMIFS のクロス集計より強力で、どんな業務で効くか——商品ラインや拠点が増減する売上表、メニューが変わる飲食の日次集計など、軸の値が固定でない集計で威力を発揮します。
3. 構成比・前年比・累計の型
比率と推移は、数式のパターンを覚えれば使い回せます。以下は集計済みの表(B列=当年売上、C列=前年売上 など)を想定します。
| 指標 | 数式の型 | 補足 |
|---|---|---|
| 構成比 | =B2/SUM($B$2:$B$100) | 分母を絶対参照で固定。表示形式をパーセントに |
| 前年比(伸び率) | =B2/C2-1 | 1.0を基準に「+10%」なら 0.1。0除算は IFERROR で保護 |
| 前年差(増減額) | =B2-C2 | 金額そのものの増減 |
| 累計(ランニング合計) | =SUM($B$2:B2) | 起点だけ絶対参照、終点を相対にして下へコピー |
| 構成比累計(ABC分析) | =SUM($B$2:B2)/SUM($B$2:$B$100) | 大きい順に並べてから累計構成比 |
=IFERROR(B2/C2-1, "") — 前年が0や空でもエラーにせず空欄に=B2/C2-1 — 前年(C2)が0だと #DIV/0! が並んで表が汚れる 累計は 起点を絶対参照($B$2)、終点を相対参照(B2) にするのがコツです。下へコピーすると参照範囲が B2:B2、B2:B3、B2:B4…と伸び、自然に積み上がります。累計構成比を大きい順に並べれば、そのまま ABC分析(売上の8割を占める上位商品の特定)になります。在庫の重点管理や、注力すべき顧客の絞り込みに直結する型です。
4. 条件付き書式で可視化
数字の羅列は、色を付けるだけで一気に読めるようになります。「表示形式 → 条件付き書式」から設定します。
- カラースケール(ヒートマップ):「単一色」ではなく「カラースケール」を選ぶと、値の大小に応じて濃淡のグラデーションがつきます。月×拠点のクロス集計に重ねれば、強い/弱いセルが面で見える ヒートマップになります。
- 上位/下位の強調:ルールに「上位N件」「上位N%」を指定すると、売上トップの行などを自動でハイライトできます。重点管理する対象が更新のたびに自動で色付くので、定例レポートに向きます。
- データバー的表現:スプレッドシートには専用のデータバー機能はありませんが、
=REPT("■", B2/MAX($B$2:$B$100)*20)のように 記号を比率分くり返す ことで、セル内に簡易な横棒を作れます(次節のSPARKLINEのほうが手軽です)。 - 数式ベースのルール:「カスタム数式」を使うと、行全体を条件で塗れます。たとえば
=$D2<0を行範囲に適用すると、赤字の行だけ 色が付きます。=$E2="未対応"のようにステータス列で行を色分けするのも定番です。
5. SPARKLINE — セル内ミニグラフ
SPARKLINE は 1つのセルの中に小さなグラフ を描く関数です。表の各行の右端に推移を添えると、数字とトレンドを同時に見せられます。
| 種類 | 構文 | 用途 |
|---|---|---|
| 折れ線 | =SPARKLINE(B2:M2) | 月次推移などの時系列 |
| 棒 | =SPARKLINE(B2:M2, {"charttype","column"}) | 各期の大小比較 |
| 勝敗 | =SPARKLINE(B2:M2, {"charttype","winloss"}) | プラス/マイナスを上下で |
| 進捗バー | =SPARKLINE(B2, {"charttype","bar";"max",100}) | 1値を横棒で(達成率など) |
=SPARKLINE(B2:M2, {"charttype","line";"color","#2b6cb0"}) — B2〜M2(12か月)の折れ線を青で=SPARKLINE(B2, {"charttype","bar";"max",100;"color1","#2f855a"}) — 達成率を0〜100の横棒で オプションは {"キー","値"; …} の形で、ペアの区切りはセミコロン(;) です(日本語ロケールでは行区切りがセミコロン)。商品別の売上推移を一覧に並べる、KPI一覧に達成率バーを添える、といった 一覧性の高いダッシュボード で重宝します。
6. グラフの選び方
グラフは「見せたい関係」によって最適な型が決まります。迷ったら次の対応表から選びます。
| 見せたいこと | 推奨グラフ | 理由・注意 |
|---|---|---|
| 時間に沿った推移 | 折れ線 | 連続した変化を線で示せる。系列が多すぎると読めない |
| 項目間の大小比較 | 横棒/縦棒 | 長さで比較できる。ラベルが長いなら横棒 |
| 内訳・構成 | 棒(積み上げ)推奨 | 円グラフは要素3〜4個まで。多いと比較困難 |
| 2変数の相関 | 散布図 | 点の散らばりで関係を見る。時系列には使わない |
| 累計と単月の同時表示 | 複合(棒+折れ線) | 棒=単月、折れ線=累計など軸を分ける |
7. ダッシュボードの設計 — 3層分離
更新に強いダッシュボードの肝は、役割でシートを分ける 3層分離 です。1枚のシートに生データと見た目を混在させると、データ追加のたびに表示が崩れ、保守できなくなります。
[1] 生データ層 … 明細をそのまま貯める(手を加えない・並べ替えない)
│ QUERY / SUMIFS / ピボット で集約
▼
[2] 集計層 … 月別・カテゴリ別などの集計表を関数で作る(中間成果物)
│ 集計層を参照するだけ
▼
[3] 表示層 … グラフ・SPARKLINE・主要KPIを配置(見せる専用)
| 層 | 置くもの | 原則 |
|---|---|---|
| 生データ | 明細(1行1レコード) | 入力・追記のみ。式や色を持ち込まない |
| 集計 | QUERY・SUMIFS・ピボット | 生データを範囲参照で集約。列追加に追従する形に |
| 表示 | グラフ・KPI・SPARKLINE | 集計層だけを参照。レイアウトと装飾はここに集約 |
その場の深掘りはピボット
軸を組み替えて仮説を探すならドラッグで完結するピボット。定型化したら関数へ移す。
定型集計は QUERY / SUMIFS
毎月同じ形なら数式化。列全体を参照し、データ追加に自動追従させる。
3層分離で壊れない
生データ・集計・表示を分け、生データは追記だけ。表示は参照だけにする。
集計・分析の型が揃っても、その精度は 入力データのきれいさ で頭打ちになります。表記ゆれや重複が残っていると、QUERY もピボットも別物として数えてしまうからです。次は 第8章 データ整形・名寄せ で、集計の前提となる「きれいなデータ」の作り方へ進みましょう。