Accessでクロス集計する方法と列見出しの固定

概要

この記事の結論
Accessのクロス集計クエリは、行見出し・列見出し・値と集計方法を指定して作ります。
例えば部門を行、年月を列、売上金額の合計を値にすれば、部門ごとの月別売上を一覧できます。

この記事でわかること

  • 集計の単位と元データを確認する
  • ウィザードで行・列・値を選ぶ
  • SQLで列見出しを固定する
  • 空欄とパラメーターを扱う

この記事の主な内容

  1. クロス集計は行と列の交点へ集計値を置く
  2. 集計の単位と元データを確認する
  3. ウィザードで行・列・値を選ぶ
  4. SQLで列見出しを固定する
  5. 空欄とパラメーターを扱う
  6. 元の明細合計と照合して運用する
  7. よくある質問

想定読了時間:約8分


1 クロス集計は行と列の交点へ集計値を置く

Accessのクロス集計クエリは、行見出し・列見出し・値と集計方法を指定して作ります。
例えば部門を行、年月を列、売上金額の合計を値にすれば、部門ごとの月別売上を一覧できます。

Excelのピボットテーブルに似た見せ方ですが、クエリとして定義を保存します。
集計結果は元の明細を直接編集する画面とは分けて使います。

クロス集計の3要素について、行、列、値の関係を示す図

2 集計の単位と元データを確認する

元表T_売上に部門名、売上日、金額を用意します。
金額は数値または通貨、売上日は日付/時刻で保存します。
月番号だけでまとめると、異なる年の同じ月を合算するため、年月で区別します。

結合したクエリを元にする場合、結合によって明細が増えていないか確認してください。
集計前の多重行は、そのまま金額の二重計上につながります。

設定例と確認点

部門売上日金額
営業12026/9/11000
営業12026/9/2500
営業22026/9/1800
元データの確認について、日付、金額、明細の関係を示す図

3 ウィザードで行・列・値を選ぶ

[作成]のクエリウィザードからクロス集計を選びます。
複雑な条件は先に選択クエリで整理しておくと、集計設定に集中できます。

操作手順

1. 元のテーブルまたは選択クエリを指定します。

2. 行見出しに部門名を選びます。

3. 列見出しに売上日の年月を使います。

4. 集計する値に金額、関数に合計を指定します。

5. 保存して営業1の9月が1500、営業2が800か確認します。

集計設定の順序について、行見出し、列見出し、集計方法、確認の関係を示す図
列見出しを固定について、9月、10月、11月の関係を示す図

4 SQLで列見出しを固定する

フォームやレポートで使う場合は、毎回列数が変わると参照エラーの原因になります。
PIVOTのIN句、または列見出しプロパティで必要な年月を固定します。
売上のない月も列として用意できます。

サンプルコードと式

TRANSFORM Sum([金額]) AS 売上合計
SELECT [部門名]
FROM [T_売上]
WHERE [売上日]>=DateSerial(2026,9,1)
 AND [売上日]<DateSerial(2026,12,1)
GROUP BY [部門名]
PIVOT Format([売上日],”yyyy-mm”)
 IN (“2026-09″,”2026-10″,”2026-11”);

月番号だけの問題について、2025年9月、2026年9月、年月の関係を示す図

5 空欄とパラメーターを扱う

該当明細がない交点はNullになることがあります。
表示上0にしたい場合は、クロス集計を元にした選択クエリで Nz([2026-09],0) とするなど、未発生とゼロ売上の意味を確認してから変換します。

パラメーターを使う場合は、開始日・終了日を日付/時刻型として明示します。
クロス集計では型が認識できずエラーになる場合があるため、フォーム参照も含めて宣言を確認します。

Nullと0の違いについて、Null、0の関係を示す図

既存Accessへの影響を判断できない場合

本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。


7 よくある質問

列見出しプロパティやPIVOTのIN句で列を固定します。

月だけでなく年月を列見出しにします。

パラメーターの名前と日付/時刻などの型を明示してください。

まとめと相談先

月を追加する運用では、固定した列見出しとレポート側の項目を一緒に更新します。
列が変わる前提なら、帳票設計も含めて運用方法を決めましょう。

本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。


参考情報

Microsoft:クロス集計
https://support.microsoft.com/en-us/access/make-summary-data-easier-to-read-by-using-a-crosstab-query

Microsoft:TRANSFORM
https://learn.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/transform-statement-microsoft-access-sql

TOP