Access FAQ

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 など)

値として指定できるのは、
SumCountAvg などの集計関数です。

業務でよく使われるのは、

  • 金額 → Sum
  • 件数 → Count
  • 平均値 → Avg

です。

1つのクロス集計クエリにつき、値は基本的に1種類
という点も、設計時に意識しておく必要があります。

クロス集計クエリのメリット

一覧性が高く、確認しやすい

最大のメリットは、
一目で全体像が分かることです。

  • 月ごとの増減
  • 担当者間の差
  • 偏りの有無

が直感的に把握でき、
管理・判断に使いやすい形になります。

集計ロジックをAccess側に集約できる

クロス集計を使うことで、

  • Excelに依存しない
  • 人手による集計を減らせる
  • 業務フローを標準化できる

といった効果があります。

「誰が集計しても同じ結果になる」
という点は、責任者にとって大きな価値です。

クロス集計クエリの注意点・弱点

列が増減すると帳票・フォームが壊れやすい

クロス集計の最大の弱点は、
列構成が固定されないことです。

  • 月が変わる
  • 年度が切り替わる
  • 想定外の区分が増える

と、列数が変わり、
フォームや帳票で表示している場合に
レイアウトが崩れることがあります。

SQLやVBAと組み合わせると難易度が上がる

クロス集計を、

  • フォームに表示
  • レポートに出力
  • VBAで制御

し始めると、
難易度は一段上がります

RunSQL や DAO.Execute と組み合わせる場合も、
列構成の変化をどう扱うかを考えておかないと、
保守が困難になります。

クロス集計クエリを使うべきかの判断基準

使ってよいケース

クロス集計が向いているのは、

  • 列構成がある程度固定されている
  • 内部確認用・管理用の資料
  • 見やすさを優先したい集計

といったケースです。

別の方法を検討すべきケース

一方で、

  • 列が頻繁に変わる
  • 将来的にDB移行を予定している
  • プログラム処理で使い回したい

場合は、
通常の集計クエリや別設計を検討した方が安全です。

まとめ|クロス集計は「便利だが万能ではない」

クロス集計クエリは、

  • 見やすく
  • 分かりやすく
  • 管理に向いている

非常に便利な機能です。

しかし同時に、

  • 列が変わる
  • 保守が難しくなる

という側面も持っています。

大切なのは、
「作れるか」ではなく「使い続けられるか」

システムキューブの「Accessの移行変換、mdb・adpのバージョンアップ」について

システム開発・ホームページ制作会社|株式会社システムキューブ