Accessレポートのグループ化と小計の設定方法 印刷と集計の注意点

概要

この記事の結論
Accessレポートを顧客別などにまとめるには、[グループ化と並べ替え]で[グループの追加]からキーを指定します。見出しはグループヘッダー、明細は詳細、小計はグループフッターに置きます。同じ合計式でも置く場所で集計範囲が変わるため、帳票全体の総計と区別してください。名前ではなくIDでまとめ、印刷プレビューと元データの照合まで行うと集計ミスを防げます。
レポートのグループ化とは、共通する項目の値で明細をまとめ、見出しや小計を付けて表示する機能です。

この記事でわかること

  • 帳票に必要なデータとグループのキーを準備する
  • グループヘッダーとフッターを設定する
  • 小計と総計を正しい場所に配置する
  • 複数階層と年月別のまとまりを作る

この記事の主な内容

  1. グループ化と並べ替えと集計の違いを理解する
  2. 帳票に必要なデータとグループのキーを準備する
  3. グループヘッダーとフッターを設定する
  4. 小計と総計を正しい場所に配置する
  5. 複数階層と年月別のまとまりを作る
  6. 改ページと検算を行って印刷品質を確かめる
  7. よくある質問

想定読了時間:約15分~20分


グループ化と並べ替えと集計の違いを理解する

顧客ごとの明細と小計を1枚の帳票にしたい場合、レポートのグループ化を使います。並べ替えが行の順番を変えるのに対し、グループ化は同じ値の明細をまとめ、区切りや見出しを設ける操作です。集計は、まとめた範囲の金額や件数を計算することです。

操作変える内容売上一覧での例
並べ替え明細の順序売上日の古い順にする
グループ化明細のまとまり顧客IDごとに区切る
集計数値の計算結果顧客ごとの売上金額を合計する

レポートのグループ化だけで、元のテーブルのデータが統合・削除されるわけではありません。明細を残して見やすく区切る用途に使えます。一方、顧客ごとに1行だけの集計結果がほしいなら、集計クエリをレコードソースにする方法も比較します。

並べ替えとグループ化と集計の役割の違い

明細帳票と集計帳票を先に決める

請求の内訳を確認するなら明細を残し、部署別の月次合計だけを見るなら集計後のデータを使う、といった使い分けです。両方を同じ帳票で扱う場合は、どの数値が明細で、どの数値が小計かをラベルで区別します。数値が同じ列に並ぶだけでは読み間違えやすくなります。


帳票に必要なデータとグループのキーを準備する

設定の前に、レポートの1行が何を表すかを決めます。受注1件なのか、受注明細1行なのかで、件数の意味と金額の合計が変わります。グループ化を工夫しても、元データの重複や粒度の違いは自動では解消されません。

例に使うデータ

次の架空データは1行を売上明細1件とします。売上明細IDは重複せず、金額は明細の金額です。顧客IDでまとめると、101の小計は3,000円、202の小計は4,000円、総計は7,000円になります。この期待値を先に決めておくと、配置後の検算ができます。

売上明細ID顧客ID顧客名売上日金額
1101青葉商店2026/10/011,000
2101青葉商店2026/10/022,000
3202青葉商店2026/10/034,000

顧客名ではなく顧客IDを使う理由

同じ名前の顧客が存在する場合、顧客名でまとめると別の相手の金額が合算されます。グループのキーは顧客IDとし、見出しに顧客名を表示します。名称の変更や表記揺れがあっても、IDが同じ相手なら同じグループとして扱えるよう設計します。

同じ顧客名でもIDが違う場合は別グループにする考え方

キーがNullの行や、顧客マスターと結び付かない明細がある場合は、帳票設定より先にデータを点検します。「不明な顧客」のまとまりへ混ざると請求先を誤るおそれがあります。欠損行を抽出して修正するか、帳票に出すルールを決めてください。

レコードソースを確認する

レポートをデザインビューで開き、プロパティシートでフォームではなくレポート全体を選びます。[データ]の[レコードソース]にあるテーブルまたはクエリを確認し、顧客ID、顧客名、売上日、金額、明細IDが取得できるか調べます。


グループヘッダーとフッターを設定する

グループヘッダーはまとまりの先頭、グループフッターは末尾に表示する領域です。顧客名を見出し、売上行を詳細、顧客の小計をフッターに置けば、明細と集計の関係が伝わる帳票になります。

既存レポートへグループを追加する

1. 対象レポートのコピーを作り、デザインビューで開きます。
2. デザイン関連のタブから[グループ化と並べ替え]を表示します。
3. 画面下部の[グループの追加]を選び、顧客IDを指定します。
4. [その他]などの詳細設定を開き、ヘッダーとフッターを使う設定にします。
5. 顧客IDヘッダーに顧客IDと顧客名、詳細に売上日と明細金額を配置します。
6. 顧客IDフッターへ小計用テキストボックスを配置します。
7. 保存し、印刷プレビューで区切りを確認します。

セクション置く情報表示される単位
レポートヘッダー帳票タイトル・対象期間帳票の最初
グループヘッダー顧客ID・顧客名顧客のまとまりの先頭
詳細売上日・商品・金額各明細
グループフッター顧客小計顧客のまとまりの末尾
レポートフッター帳票全体の総計帳票の最後
ページヘッダー・フッターページ見出し・ページ番号各ページ
グループ化レポートの見出しと明細と小計の配置

グループ内の並び順を追加する

顧客IDのグループの下に、売上日の昇順、必要なら売上明細IDの昇順を追加します。同じ日の明細が複数あるときも順序を一定にできます。画面下部の設定は上から優先されるため、顧客より日付を外側にすると別のまとまりになります。


小計と総計を正しい場所に配置する

小計と総計は、式だけでなく置くセクションによって範囲が変わります。顧客ごとの小計は顧客IDフッター、全体の総計はレポートフッターへ置きます。ページフッターへ同じ式を入れて「そのページだけの合計」になるとは考えないでください。

金額を合計する基本式

小計用のテキストボックス名をtxt顧客小計とし、[コントロールソース]に次の式を設定します。合計対象はレコードソースにある金額フィールドです。ラベルに「顧客小計」と入力し、表示形式を通貨または必要な数値形式にします。

=Sum([金額])

レポートフッターのtxt総計にも同じ式を設定すれば、帳票対象の金額を合計できます。テキストボックス名を金額と同じにせず、フィールドとコントロールを区別すると、参照ミスを防ぎやすくなります。

件数を数える場合

=Count(*)

Count(*)は対象範囲のレコード数を数える例です。明細が1行1商品なら、受注件数ではなく商品明細数になります。受注件数が必要なら、受注IDの重複を除いたデータで数えるなど、何の件数かに合わせてデータ元を設計してください。

グループごとの小計とレポート全体の総計の違い

計算欄の合計とNullの注意

数量と単価から明細金額を出すなら、元クエリで「明細金額: [数量]*[単価]」という列を用意し、その列をレポートで合計する方法があります。数量や単価の欠損を0円に見せてよいかは業務上の判断です。単にエラーをなくすためにNullを0へ置き換えると、未入力を見逃す可能性があります。

表示の四捨五入と、計算上の丸めは別です。請求金額などでは、明細単位で丸めるのか合計後に丸めるのか、税額の計算をどこで行うのかを決めます。書式を小数0桁にしただけで、内部の数値まで整数になるわけではありません。


複数階層と年月別のまとまりを作る

月ごとの顧客別売上なら、外側を年月、内側を顧客IDにします。グループ化の順序は帳票を読む順序でもあります。部署別・担当者別などを追加するときも、読者がどこから比較するかを先に決めてください。

外側から内側へ設定する

設定例は「年月のグループ→顧客IDのグループ→売上日の並べ替え」です。年月のフッターは月計、顧客IDのフッターは顧客小計とします。階層が増えるほど、見出しやラベルで集計範囲を明確にする必要があります。

年月の内側に顧客をまとめて明細を並べるグループ構成

月だけでまとめて年を混ぜない

Month([売上日])だけをグループのキーにすると、2025年1月と2026年1月が同じ「1」になるため混ざります。年と月を別の階層にするか、元クエリで各月の1日を求める年月キーを作ります。次は売上日に値があることを確認したうえで使う式の例です。

売上月: DateSerial(Year([売上日]), Month([売上日]), 1)

売上月でグループ化し、見出しの表示形式をyyyy年m月にすると、値は日付として保持しながら年月だけを見せられます。年月文字列を作る場合も、年を含め、並び順が崩れない形に統一してください。

月番号だけでは異なる年が混ざるため年月で分ける考え方

改ページと検算を行って印刷品質を確かめる

画面上で見やすくても、印刷時に見出しだけがページ末尾へ残ったり、余分な空白ページが出たりすることがあります。短いグループだけでなく、1ページに収まらない長いグループを含めて確認します。

合計が多いときは元クエリへ戻る

明細を別の明細と結合すると、1件の金額が複数行に増えて合計される場合があります。例えば売上明細に複数の入金行をそのまま結合すると、売上金額が入金行数だけ繰り返されます。レポートで重複表示を隠しても、集計対象の行が減るわけではありません。

結合で明細が増えると金額が二重計上される注意点

元クエリの件数と明細IDの重複を調べ、必要に応じて結合する側を先に集計するなど、同じ粒度で結び付けます。問題を隠すために金額だけDISTINCTで取り出すと、偶然同じ金額の別明細まで消す可能性があるため避けてください。

複数ページに見出しを繰り返す

グループが次のページへ続く場合は、グループヘッダーの[セクション繰り返し]を[はい]にする方法があります。RepeatSectionはグループヘッダーに対する設定です。レポート全体や詳細行の設定と混同しないようにします。

改ページと幅を確認する

症状確認する設定・構造改善の方向
見出しだけページ末尾へ残るグループのページ保持見出しと最初の明細を同じページへ
大きな空白ができるグループ全体を同一ページに保持長いグループは分割を許す
顧客ごとにページを分けたいグループの改ページ設定先頭・末尾の余分な改ページを確認
横方向に空白ページが出るレポート幅+左右余白用紙の印刷可能幅へ収める
次ページで顧客が分からないグループヘッダーの繰り返し見出しを継続ページにも表示

Accessの設定や運用で解決が難しい場合は

設定変更だけで改善しない場合や、複数人での利用・外部DB・既存のVBAが関わる場合は、原因と影響範囲を整理してから改修を進めましょう。Accessの教科書では、既存Accessの修正や運用の見直しについて相談できます。対象画面、症状、再現手順をまとめると、調査の相談がしやすくなります。

最後は明細と小計と総計を照合する

例の3行なら、明細数3件、顧客ID101の小計3,000円、202の小計4,000円、総計7,000円を確認します。実データでは期間条件、取消データの扱い、税の丸めもそろえて比較します。対象範囲が違うExcelと金額だけ照合しても、差の原因が分からなくなります。

グループ化帳票を印刷する前の確認項目

まとめ

グループのキーには顧客IDなどの識別項目を使い、見出し・明細・小計を適切なセクションへ配置します。小計と総計は置く場所で範囲が変わります。年を含む月キー、結合後の件数、印刷時の改ページまで確認し、元データと帳票の金額が一致することを確かめてから利用しましょう。


よくある質問

並べ替えは行の順序を変える操作で、グループ化は共通する値の明細をまとめ、見出しや小計を置く単位を作る操作です。顧客ごとの売上一覧なら、顧客IDでグループ化し、その内側で売上日順に並べると読みやすくなります。グループ化しても元データの行が削除されたり、重複が解消されたりするわけではありません。顧客別に1行だけの結果が必要な場合は、集計クエリを使う方法も比較し、明細を残すかどうかで選んでください。

顧客別の小計は、顧客IDで作ったグループのフッターへ置きます。帳票全体の総計はレポートフッターに配置します。どちらもSumを使えますが、セクションによって計算する範囲が異なる点が重要です。ページフッターへ同じ式を置けばページ内だけの合計になる、とは考えないでください。テキストボックスの名前と合計対象のフィールド名を区別し、小計・総計のラベルを付けます。最後に少数の明細を使って手計算と照合しましょう。

顧客IDをグループのキーにしている場合、表示される顧客名が同じでもIDが違えば別のまとまりになります。同名の別会社を分けるなら正しい動作です。一方、本来同じ顧客に複数IDが発行されているなら、マスターの重複を調べる必要があります。名称でグループ化している場合は、空白や表記揺れも確認してください。見た目をそろえるために名前だけで無理に合算せず、同じ取引先なのかという業務上の識別を先に確定することが大切です。

Month関数などで月番号だけをキーにすると、異なる年の同じ月が同じ値になります。年と月の両方を使ってグループ化するか、元クエリでDateSerial関数を使い各月の1日を表す日付を作る方法があります。例えば2025年1月と2026年1月が別の値になれば、年を跨いでも分離できます。表示形式だけを年月にしても、グループのキーが月番号のままなら解決しません。集計期間の抽出条件とキーの内容を両方確認してください。

グループヘッダーの[セクション繰り返し]を[はい]にする方法があります。グループが複数ページに続くときに、顧客名などを継続ページへ表示できます。対象はグループヘッダーなので、ページヘッダーや詳細セクションを選んでいないか確認してください。設定後は、1ページに収まる例だけでなく長い明細を使って印刷プレビューを確認します。見出しと最初の明細を同じページに保つ設定も併せて調整すると、ページ末尾の孤立を防げます。

レポートの元クエリで、結合により明細が増えている可能性があります。例えば1件の売上に複数の入金があり、それらをそのまま結合すると、売上金額が複数行へ繰り返されます。重複表示を隠してもSumの対象は減りません。元の件数、結合後の件数、明細IDの重複を確認し、必要なら結合する側を先に集計します。また、受注合計と明細金額を混ぜていないか、期間や取消条件が同じかも点検し、表示ではなくデータの粒度から直してください。

グループ全体を同じページに保持する設定が、長い明細には合っていない可能性があります。見出しと最初の明細だけを同じページにするなど、分割を許す設定を検討します。また、グループの前後で改ページが重複していないか確認してください。横方向の空白ページであれば、レポート幅と左右余白が用紙に収まっていないこともあります。短い顧客と長い顧客を混ぜたデータで、先頭・中間・最終ページを印刷プレビューとPDFで点検します。

Accessの設定や運用で解決が難しい場合は

設定変更だけで改善しない場合や、複数人での利用・外部DB・既存のVBAが関わる場合は、原因と影響範囲を整理してから改修を進めましょう。Accessの教科書では、既存Accessの修正や運用の見直しについて相談できます。対象画面、症状、再現手順をまとめると、調査の相談がしやすくなります。

関連記事

レポートの基本

レポートを編集する

クエリの基本

データベースの基礎


参考情報

[1] Microsoft|グループ化レポートの作成
https://support.microsoft.com/ja-jp/access/create-a-grouped-or-summary-report

[2] Microsoft|レポートで合計を求める
https://support.microsoft.com/ja-jp/access/summing-in-reports

[3] Microsoft|レポートの概要
https://support.microsoft.com/ja-jp/access/introduction-to-reports-in-access

[4] Microsoft|Section.RepeatSection
https://learn.microsoft.com/en-us/office/vba/api/access.section.repeatsection

[5] Microsoft|クエリでデータを集計する
https://support.microsoft.com/ja-jp/access/sum-data-by-using-a-query

[6] Microsoft|式の例
https://support.microsoft.com/ja-jp/access/examples-of-expressions

TOP