「担当者ごとに売上合計を出したい」「商品カテゴリ別の注文件数を一覧にしたい」「部署ごとの平均コストを把握したい」——こうした”グループ集計”の要求は、Accessの集計クエリを使うと数ステップで解決できます。集計クエリとは、テーブルのレコードをグループに分類し、グループ単位で合計・件数・平均などを計算する専用のクエリ形式です。
Accessのクエリには「選択クエリ」「集計クエリ」「クロス集計クエリ」「アクションクエリ」など複数の種類がありますが、集計クエリは日常のビジネス分析で最も頻繁に使う機能のひとつです。クエリデザインビューで「Σ(集計)」ボタンをクリックするだけで集計行が追加され、GROUP BY・Sum・Count・Avg・Max・Minといった集計方法をフィールドごとに指定できます。SQLのGROUP BY句に相当するこの操作を、AccessのGUIから直感的に設定できるのが大きな特長です。MOS Access試験でも集計クエリの作成・設定・修正は重要な操作として扱われています。本記事では、集計クエリの仕組みと作成手順・グループ化フィールドの設定・主要な集計関数の使い分け・実務シナリオ別パターン・集計後の条件絞り込み・よくあるエラーと対処法・MOS試験攻略のポイントまで、ステップごとに徹底解説します。
「Accessの集計クエリの作り方が分からない」「GROUP BYって何をしているの?」「Sum・Count・Avgの使い分けが曖昧」という方は、ぜひ最後まで読んでください。
集計クエリと選択クエリの違い
まず、通常の「選択クエリ」と「集計クエリ」の違いを整理しましょう。同じクエリデザインビューで作成しますが、出力される結果の単位が根本的に異なります。
| 比較項目 | 選択クエリ | 集計クエリ |
|---|---|---|
| 出力の単位 | テーブルの各レコード(1行=1レコード) | グループに分類されたまとまり(1行=1グループ) |
| デザインビューの集計行 | 表示なし | 「集計」行が追加される |
| フィールドに指定できる値 | フィールドや演算式 | GROUP BY(グループ化)または集計関数(Sum等) |
| 主な用途 | レコードの抽出・並べ替え・結合 | 合計・件数・平均など統計値の算出 |
| SQLの対応 | SELECT ~ FROM ~ WHERE | SELECT ~ FROM ~ GROUP BY ~ HAVING |
たとえば、受注テーブルに「担当者名」「商品名」「売上金額」の3フィールドがある場合、選択クエリでは受注データがそのまま1行1行表示されます。集計クエリを使って「担当者名」をGROUP BYに設定し、「売上金額」をSumで集計すると、担当者ごとに売上合計がまとめられた1レコードずつの結果が得られます。
集計クエリの作成手順
ステップ1:新しいクエリデザインビューを開く
Accessを起動してデータベースを開きます。[作成]タブ→[クエリデザイン]をクリックし、「テーブルの表示」ダイアログが開いたら集計対象のテーブルを選んで[追加]→[閉じる]をクリックします。クエリデザインビューが表示され、追加したテーブルがフィールドリストとして上部に表示されます。
ステップ2:フィールドを追加する
フィールドリストから「グループ化に使うフィールド」と「集計値を計算するフィールド」をデザイングリッドの「フィールド」行にドラッグ&ドロップ(またはダブルクリック)で追加します。たとえば「担当者名」と「売上金額」の2つを追加します。この段階ではまだ通常の選択クエリと同じ状態です。
ステップ3:Σ(集計)ボタンをクリックして集計行を表示する
[クエリツール]→[デザイン]タブ(または右クリックメニュー)の「集計」ボタン(Σアイコン)をクリックします。デザイングリッドに「集計」という新しい行が追加され、すべてのフィールドに「グループ化」と表示されます。これが集計クエリに切り替わった証拠です。
ステップ4:各フィールドの集計行を設定する
「集計」行のドロップダウンをクリックして、各フィールドに適切な集計方法を設定します。グループ化の基準にするフィールドは「グループ化」のまま、集計値を計算するフィールドには「Sum」「Count」「Avg」などを選びます。たとえば「担当者名」は「グループ化」、「売上金額」は「Sum」に設定します。
ステップ5:クエリを実行する
[デザイン]タブの[実行]ボタン(赤い!アイコン)をクリックするか、クエリをデータシートビューに切り替えます。担当者ごとに売上合計が集計された結果が表示されれば成功です。クエリに名前を付けて保存します([Ctrl]+[S]、またはメニューから「名前を付けて保存」)。
GROUP BY(グループ化)の詳細設定
「グループ化」は、指定したフィールドの同じ値をひとつのグループにまとめる設定です。複数のフィールドにGROUP BY(グループ化)を設定すると、その組み合わせごとにグループが作られます。
| グループ化するフィールド | グループの単位 | 集計の例 |
|---|---|---|
| 担当者名(1つ) | 担当者ごと | 担当者別の売上合計 |
| 担当者名+商品カテゴリ(2つ) | 担当者×カテゴリの組み合わせごと | 担当者別・カテゴリ別の売上合計 |
| 年+月(DatePart関数で生成) | 年月ごと | 月別の受注件数 |
| 地域+担当者名(2つ) | 地域×担当者の組み合わせごと | 地域別・担当者別の件数 |
グループ化フィールドが増えるほど、集計の粒度が細かくなります。「部署別の合計が欲しい」のか「部署×商品カテゴリ別の合計が欲しい」のかによって、グループ化するフィールドの数と組み合わせを調整します。なお、グループ化フィールドに設定されたフィールドは、そのままの値(文字列・数値・日付など)で結果に表示されます。
主要な集計関数一覧と使い分け
デザインビューの「集計」行で選択できる主な集計方法を以下の表にまとめます。
| 集計方法 | SQL関数 | 計算内容 | 対象データ型 | 主な用途 |
|---|---|---|---|---|
| グループ化 | GROUP BY | グループの基準として使用(集計せず) | すべて | 分類軸の設定 |
| 合計 | Sum | グループ内の合計値 | 数値・通貨 | 売上合計・数量合計 |
| 平均 | Avg | グループ内の平均値 | 数値・通貨 | 平均単価・平均点 |
| 最小 | Min | グループ内の最小値 | 数値・日付・テキスト | 最小価格・最早日付 |
| 最大 | Max | グループ内の最大値 | 数値・日付・テキスト | 最高売上・最新日付 |
| カウント | Count | グループ内のレコード件数(Null除く) | すべて | 受注件数・顧客数 |
| 標準偏差 | StDev | グループ内の標準偏差(標本) | 数値・通貨 | ばらつき分析 |
| 分散 | Var | グループ内の分散(標本) | 数値・通貨 | 統計分析 |
| 先頭 | First | グループ内の最初のレコードの値 | すべて | 代表値の取得 |
| 最後 | Last | グループ内の最後のレコードの値 | すべて | 最新レコードの確認 |
| 条件 | Where | 集計前の絞り込み条件(結果に表示しない) | すべて | 対象レコードを限定 |
「カウント」(Count)は、フィールドにNullが含まれる場合、Nullのレコードをカウントしません。「レコードの総件数を知りたい」場合は、主キーフィールド(Nullにならないフィールド)をCountに設定するのが安全です。
「条件(Where)」集計行の使い方
「条件(Where)」は特殊な集計方法で、集計前にレコードを絞り込む際に使います。このフィールドは結果セットに列として表示されず、純粋にフィルタの役割を担います。WHERE句に相当する動作で、「2026年4月以降の受注だけで集計したい」「東京支社のデータのみで集計したい」といった場合に活用します。
たとえば、「受注日」フィールドを追加して集計行を「条件」に設定し、抽出条件行に >=#2026/04/01# と入力すると、2026年4月1日以降のレコードのみが集計対象になります。「条件」に設定したフィールドは自動的に「表示」チェックがオフになるため、結果には表示されません。
実務シナリオ別の活用パターン
シナリオ1:担当者別の売上合計を集計する
営業担当者ごとに月次の売上実績をAccessで管理している場面を想定します。「受注テーブル」に「担当者名」「売上金額」「受注日」があるとします。
| フィールド | 集計行の設定 | 目的 |
|---|---|---|
| 担当者名 | グループ化 | 担当者ごとにグループを作る |
| 売上金額 | 合計(Sum) | 担当者ごとの売上合計を算出 |
この設定でクエリを実行すると、担当者名ごとに売上合計が1行ずつ表示されます。さらに「売上金額の合計」フィールドで降順に並べ替えを設定すると、売上ランキング形式の一覧が作成できます。月別に絞り込む場合は「受注日」フィールドを追加して集計行を「条件」に設定し、抽出条件に月の範囲を指定します。
シナリオ2:商品カテゴリ別の注文件数を集計する
商品カテゴリごとの受注件数を把握したい場合、「受注テーブル」の「カテゴリ名」と主キーである「受注ID」を使います。
| フィールド | 集計行の設定 | 目的 |
|---|---|---|
| カテゴリ名 | グループ化 | カテゴリごとにグループを作る |
| 受注ID | カウント(Count) | カテゴリごとの受注件数を算出 |
「受注ID」はNullにならない主キーフィールドなので、Count関数で正確な件数が取得できます。フィールドの見出しを「受注件数」に変更したい場合は、デザイングリッドの「フィールド」行を 受注件数: 受注ID と書き換えます(コロンの前が表示名、後がフィールド名)。
シナリオ3:月別の平均単価を集計する
「受注日」から年月を抽出してグループ化することで、月別の集計ができます。Year関数とMonth関数、またはDatePart関数を組み合わせて演算フィールドを作成します。
| フィールド(入力内容) | 集計行の設定 | 目的 |
|---|---|---|
| 年: Year([受注日]) | グループ化 | 年でグループ化 |
| 月: Month([受注日]) | グループ化 | 月でグループ化 |
| 平均単価: [単価] | 平均(Avg) | 月ごとの平均単価を算出 |
このクエリを実行すると、「年」「月」「平均単価」の3列が表示され、月ごとの平均単価推移を確認できます。「年」と「月」の2フィールドでグループ化することで、年をまたいで同じ月のデータが混在することを防いでいます。
シナリオ4:担当者別・商品カテゴリ別の最高売上を集計する
複数フィールドでグループ化すると、より細かい分類で集計できます。「担当者名」と「カテゴリ名」を両方グループ化し、「売上金額」をMaxで集計すると、担当者×カテゴリの組み合わせごとの最高売上が取得できます。
| フィールド | 集計行の設定 | 結果の意味 |
|---|---|---|
| 担当者名 | グループ化 | 担当者ごと |
| カテゴリ名 | グループ化 | さらにカテゴリごと |
| 売上金額 | 最大(Max) | その担当者×カテゴリの最高売上 |
グループ化フィールドを増やすほどグループの粒度が細かくなり、レコード数が多くなります。「大まかに把握したい」場合はグループ化フィールドを減らし、「詳細に見たい」場合はグループ化フィールドを増やすと目的に応じた集計ができます。
集計後に条件を絞り込む(HAVING句相当の操作)
集計クエリには「集計前の絞り込み(WHERE相当)」と「集計後の絞り込み(HAVING相当)」の2種類の条件設定があります。
| 絞り込みのタイミング | 集計行の設定 | 抽出条件の意味 | 例 |
|---|---|---|---|
| 集計前(WHERE相当) | 条件(Where) | 集計に含めるレコードを先に限定する | 受注日が2026年4月以降のレコードのみ集計する |
| 集計後(HAVING相当) | Sum/Count等の集計関数 | 集計結果に対して条件を指定する | 売上合計が50万円以上の担当者のみ表示する |
集計後の絞り込み(HAVING相当)は、集計関数を設定したフィールドの「抽出条件」行に値を入力します。たとえば「売上金額」フィールドの集計行を「合計(Sum)」にし、抽出条件行に >=500000 と入力すると、売上合計が50万円以上のグループのみが表示されます。これはSQLのHAVING句に相当します。
「集計前(Where)」と「集計後(HAVING相当)」を組み合わせることも可能です。たとえば「2026年度の受注データ(集計前Where絞り込み)のうち、売上合計が100万円以上(集計後HAVING絞り込み)の担当者だけ表示する」という複合条件も実現できます。
集計クエリのよくあるエラーと対処法
集計クエリを作成・修正するときに発生しやすいエラーと対処法を整理します。
| 症状・エラー | 原因 | 対処法 |
|---|---|---|
| すべてのフィールドが「グループ化」になっている | Σボタンを押した直後の初期状態 | 集計値を計算したいフィールドの集計行を「Sum」「Count」等に変更する |
| 集計行に「条件」が選べない | 集計行の選択肢は「グループ化」「集計関数」「条件」の3種類。フィールドを正しく追加しているか確認 | デザイングリッドの「集計」行のドロップダウンで「条件」を選択する |
| 「このフィールドをグループ化または集計する必要があります」エラー | SELECT句のフィールドがGROUP BYにも集計関数にも含まれていない | すべてのフィールドを「グループ化」または集計関数のどちらかに設定する |
| 件数が予想より少ない | CountしているフィールドにNullが含まれている | Nullにならない主キーフィールドをCountに使う |
| 合計が0や誤った値になる | 集計フィールドのデータ型がテキスト型になっている | フィールドのデータ型を数値型または通貨型に修正する |
| 集計結果が期待と異なる(多すぎるグループ) | グループ化フィールドに余分なフィールドを設定している | 不要なフィールドを削除するか、集計行を「条件」に変更する |
特に多いのが「テキスト型フィールドにSumを設定してしまう」エラーです。売上金額を格納するフィールドが誤ってテキスト型で定義されている場合、Sumを設定しても数値の合計ではなく文字列の先頭文字で並べ替えた結果になることがあります。テーブルのデザインビューでフィールドのデータ型を確認し、適切な型(数値型・通貨型・日付/時刻型など)に修正してから集計クエリを作り直してください。
集計クエリのSQLビュー確認
Accessのデザインビューで作成した集計クエリは、SQLビューで実際のSQL文を確認できます。[ホーム]タブの「表示」→「SQLビュー」と切り替えると、デザインビューの設定がSQLに変換された状態で表示されます。
たとえば「担当者名でグループ化して売上金額を合計する」クエリのSQLは次のようになります。
SELECT 担当者名, Sum(売上金額) AS 売上金額の合計
FROM 受注テーブル
GROUP BY 担当者名;
集計後の絞り込み(HAVING相当)を追加した場合のSQLは次のとおりです。
SELECT 担当者名, Sum(売上金額) AS 売上金額の合計
FROM 受注テーブル
GROUP BY 担当者名
HAVING Sum(売上金額) >= 500000;
デザインビューとSQLビューを行き来して構造を理解することで、より複雑な集計クエリを作成するときの理解が深まります。なお、デザインビューで「条件(Where)」を設定した場合は、SQLのWHERE句として出力されます。
MOS Access試験での集計クエリ関連の出題ポイント
MOS Access 365試験(MO-500)のクエリに関するスキル領域では、集計クエリの作成・設定・修正が出題範囲に含まれます。試験本番で操作を迷わないよう、以下のポイントを押さえておきましょう。
- Σ(集計)ボタンの場所:[デザイン]タブのリボン内にあります。デザインビューが開いていないと表示されないため、クエリデザインビューで作業することを確認する
- 集計行の設定手順:フィールドを追加→Σボタンクリック→各フィールドの集計行をドロップダウンで変更という順番を確実に覚える
- 「グループ化」と集計関数の使い分け:分類の軸になるフィールドは「グループ化」、計算したいフィールドは「Sum」「Count」等に設定する
- 「条件(Where)」の使い方:集計前の絞り込みに使う。集計行を「条件」に設定したフィールドは結果に表示されない
- 集計後の条件絞り込み(HAVING相当):集計関数フィールドの「抽出条件」行に値を入力する
- フィールドの別名設定:「フィールド」行で
別名: フィールド名と入力すると、結果の列ヘッダーをわかりやすい名前にできる - CountとCount(*)の違い:DesignビューのCountはNullを除いたカウント。Nullを含む総件数が必要なら主キーフィールドをCountに使う
MOS試験 集計クエリ操作チェックリスト
| 確認ポイント | 操作内容 | 難易度 |
|---|---|---|
| 集計クエリの起動 | [クエリデザイン]→フィールド追加→Σボタンで集計行を表示できる | ★☆☆ |
| GROUP BY設定 | グループ化の基準フィールドを「グループ化」に設定できる | ★☆☆ |
| Sum関数の設定 | 集計したいフィールドに「合計(Sum)」を設定して売上合計を算出できる | ★☆☆ |
| Count関数の設定 | 主キーフィールドに「カウント(Count)」を設定して件数を算出できる | ★☆☆ |
| Avg・Max・Min関数の設定 | 平均・最大・最小を適切なフィールドに設定できる | ★★☆ |
| 集計前絞り込み(Where) | 集計行を「条件(Where)」に設定して集計前の条件を指定できる | ★★☆ |
| 集計後絞り込み(HAVING相当) | 集計関数フィールドの「抽出条件」に値を入力して集計後の絞り込みができる | ★★☆ |
| フィールドの別名設定 | 「別名: フィールド名」形式で列ヘッダーを変更できる | ★★☆ |
| 複数フィールドでのGROUP BY | 2つ以上のフィールドをグループ化して細かい粒度の集計ができる | ★★☆ |
| 演算フィールドでのグループ化 | Year関数・Month関数などで日付から年月を抽出してグループ化できる | ★★★ |
MOS試験の集計クエリ問題は「新規作成」と「既存クエリの修正」の両方が出題されます。既存クエリの修正問題では、集計行の設定値が誤っているものを正しい集計関数に変更したり、条件絞り込みの設定を追加したりする操作が求められます。試験対策としては、自分でAccessのサンプルデータベースを作り、同じ設定を繰り返し作成・修正する練習が最も効果的です。
受験料は2026年7月時点で一般価格12,980円(税込)・学割価格9,680円(税込)です。試験時間は50分、採点は1,000点満点で実施されます。合格点は非公表で550点~850点が目安とされています。合格率は公表されていません。
まとめ:集計クエリはGROUP BY×集計関数の組み合わせが核心
本記事のポイントをまとめます。
- 集計クエリとは:Σボタンで集計行を追加し、フィールドごとにGROUP BY・Sum・Count・Avgなどの集計方法を設定する専用クエリ形式。SQLのGROUP BY句に対応する
- 作成手順:クエリデザインビューでフィールドを追加→Σボタンをクリック→各フィールドの集計行をドロップダウンで設定→実行の4ステップ
- グループ化(GROUP BY):分類の軸にするフィールドに設定。複数フィールドを「グループ化」にすると組み合わせごとにグループが作られる
- 集計関数の使い分け:合計はSum、件数はCount(NullあるフィールドはNullを除外)、平均はAvg、最大・最小はMax・Min。用途に応じて正しい関数を選ぶ
- 集計前の絞り込み(WHERE相当):集計行を「条件(Where)」に設定し、抽出条件行に条件を入力する。このフィールドは結果に表示されない
- 集計後の絞り込み(HAVING相当):集計関数フィールドの「抽出条件」行に条件値を入力する(例:Sum(売上金額)に >=500000)
- よくあるエラー:テキスト型フィールドへのSum設定・グループ化フィールドの過不足・NullフィールドのCount誤りが代表的。SQLビューで構造を確認すると原因が見つかりやすい
- MOS試験対策:Σボタンの場所・グループ化と集計関数の使い分け・Where条件とHAVING相当の条件の違いを体験的に習得する
集計クエリをマスターすると、テーブルに蓄積したデータをその場で分析レポートに変換できるようになります。クロス集計クエリやレポートウィザードと組み合わせることで、集計結果を視覚的に整えた帳票として仕上げることも可能です。まずはシンプルな「1フィールドでGROUP BY・Sumで合計を出す」集計クエリを実際に手を動かして作成してみてください。Accessの集計機能の使い勝手がつかめれば、より複雑な分析要件にも自信を持って対応できるようになります。
PR
MOS試験シリーズの対策テキスト。Excel・Word・AccessなどのMOS試験はいずれも同じ試験形式で実施されます。本書でMOS試験の出題パターンや操作の確認方法を把握しておくと、Access試験の学習にも応用できます。
PR
Microsoft Copilot for Microsoft 365活用大全
Microsoft 365の各アプリをAIで効率化するノウハウを網羅した一冊。Accessを含むOffice全体のデータ活用・自動化の考え方を広げたい方に最適です。集計クエリで整理したデータをさらに活用するヒントが得られます。
