Accessのクロス集計クエリとは?
Accessを使った業務管理やデータ集計の現場では、
「月別の売上を担当者ごとに一覧で見たい」
「部署×商品別に件数をまとめたい」
といった要望が頻繁に出てきます。
このような “行と列の両方で整理された集計表” を作る際に登場するのが、
クロス集計クエリです。
一方で、
- 何となく使っているが仕組みはよく分からない
- 便利そうだが、使い続けて大丈夫なのか不安
- Excelのピボットと何が違うのか曖昧
という声も少なくありません。
この記事では、クロス集計クエリについて
**「何ができるのか」「どんな場面で使うべきか」「注意すべき点は何か」**を、
業務システムを任されている立場の方向けに整理して解説します。
クロス集計クエリとは何をするものか
行と列で集計結果を一覧表示するクエリ
クロス集計クエリとは、
行見出しと列見出しを持つ集計結果を作成するクエリです。
通常の集計クエリが
「縦方向に集計結果を並べる」のに対し、
クロス集計クエリは、
- 行:担当者、部署、商品など
- 列:月、年度、区分など
といった形で、**表形式(マトリクス形式)**に結果を表示します。
見た目としては、Excelのピボットテーブルに非常に近く、
「一覧で状況を把握したい」場面に強いのが特徴です。
なぜ「クロス集計」という名前なのか
クロス集計という名前は、
行と列が交差(クロス)する点に集計値が入ることから来ています。
例えば、
- 行:担当者
- 列:月
- 値:売上金額
という場合、
「担当者 × 月」の交差点に売上金額が表示されます。
Accessではこの構造を明確に意識して設計する必要があり、
ここを理解していないと、
「作れたが修正できないクエリ」になりがちです。
Accessの通常の集計クエリとの違い
集計クエリでできること
通常の集計クエリは、GROUP BY を使って 縦方向に集計します。
例えば、
- 担当者別の売上合計
- 月別の件数集計
など、1つの軸でまとめる処理に向いています。
結果は、
担当者A 100万円
担当者B 80万円
のように、縦に並びます。
クロス集計クエリでできること
クロス集計クエリは、
この集計結果を さらに列方向に展開します。
1月 2月 3月
担当者A 30万 40万 30万
担当者B 20万 35万 25万
といった形で、
比較しやすい一覧表が作れるのが最大の違いです。
ただし、列が動的に増減する点が、
後述する注意点にもつながります。
クロス集計クエリはどんな場面で使われるか
売上・数量・件数を月別・担当別に見る
クロス集計がよく使われるのは、次のような場面です。
- 月別 × 担当者別の売上
- 部署別 × 商品別の数量
- 年度別 × 区分別の件数
「比較しながら状況を確認したい」 というニーズに非常に向いています。
会議資料や内部管理用の一覧表として、
Accessだけで完結させたい場合にも重宝されます。
Excelで集計していた処理をAccessで完結させたい時
Excelで毎月、
- データを貼り付け
- ピボットを更新
- 書式を調整
といった作業をしている場合、
人による差やミスが発生しやすいのが実情です。
クロス集計クエリを使えば、
- 集計ロジックをAccess側に固定
- データ更新だけで再集計
が可能になり、
業務の安定性が向上します。
クロス集計クエリの基本的な仕組み
行見出し・列見出し・値の関係
クロス集計クエリは、次の3要素で構成されます。
- 行見出し(Row Heading)
- 列見出し(Column Heading)
- 値(集計対象)
Accessのクエリデザインでは、
- 「行見出し」
- 「列見出し」
- 「値」
という専用の指定欄が用意されており、
ここを正しく設定することが重要です。
集計関数(Sum / Count / Avg など)
値として指定できるのは、Sum、Count、Avg などの集計関数です。
業務でよく使われるのは、
- 金額 → Sum
- 件数 → Count
- 平均値 → Avg
です。
1つのクロス集計クエリにつき、値は基本的に1種類
という点も、設計時に意識しておく必要があります。
クロス集計クエリのメリット
一覧性が高く、確認しやすい
最大のメリットは、
一目で全体像が分かることです。
- 月ごとの増減
- 担当者間の差
- 偏りの有無
が直感的に把握でき、
管理・判断に使いやすい形になります。
集計ロジックをAccess側に集約できる
クロス集計を使うことで、
- Excelに依存しない
- 人手による集計を減らせる
- 業務フローを標準化できる
といった効果があります。
「誰が集計しても同じ結果になる」
という点は、責任者にとって大きな価値です。
クロス集計クエリの注意点・弱点
列が増減すると帳票・フォームが壊れやすい
クロス集計の最大の弱点は、
列構成が固定されないことです。
- 月が変わる
- 年度が切り替わる
- 想定外の区分が増える
と、列数が変わり、
フォームや帳票で表示している場合に
レイアウトが崩れることがあります。
SQLやVBAと組み合わせると難易度が上がる
クロス集計を、
- フォームに表示
- レポートに出力
- VBAで制御
し始めると、
難易度は一段上がります。
RunSQL や DAO.Execute と組み合わせる場合も、
列構成の変化をどう扱うかを考えておかないと、
保守が困難になります。
クロス集計クエリを使うべきかの判断基準
使ってよいケース
クロス集計が向いているのは、
- 列構成がある程度固定されている
- 内部確認用・管理用の資料
- 見やすさを優先したい集計
といったケースです。
別の方法を検討すべきケース
一方で、
- 列が頻繁に変わる
- 将来的にDB移行を予定している
- プログラム処理で使い回したい
場合は、
通常の集計クエリや別設計を検討した方が安全です。
まとめ|クロス集計は「便利だが万能ではない」
クロス集計クエリは、
- 見やすく
- 分かりやすく
- 管理に向いている
非常に便利な機能です。
しかし同時に、
- 列が変わる
- 保守が難しくなる
という側面も持っています。
大切なのは、
「作れるか」ではなく「使い続けられるか」。
システムキューブの「Accessの移行変換、mdb・adpのバージョンアップ」について

