Accessでグループ化する方法をお探しですね。
広告
Accessでグループ化・集計する方法をわかりやすく解説
Accessで売上データや請求データを扱っていると、「お客さんごとの合計金額が知りたい」「担当者別に何件あるか数えたい」「月ごとの売上をまとめたい」といった場面がよくあります。
こういう集計作業は、Excelならピボットテーブルを使うことが多いですよね。
でもAccessでは「集計クエリ」という機能を使うと、もっと効率よく処理できるんです。
この記事では、Accessのクエリでデータをグループ化して、合計やカウントを行う基本的な手順から、実際に使っていてつまずきやすいポイントまで、初心者の方にもわかりやすく説明していきます。
Accessでグループ化・集計するときの基本的な考え方
Accessでデータをグループ化・集計するとき、まず考えたいのが「何を基準にまとめるか」と「何を計算するか」を分けて考えることです。
たとえば、売上テーブルに「顧客名」「売上日」「数量」「金額」が入っているとします。
ここで「顧客名ごとの金額合計」を出したいなら、顧客名がまとめる基準になって、金額が合計する対象になりますよね。
つまり、グループ化はデータをまとめる軸で、合計やカウントはまとめた後にする計算処理なんです。
Accessの集計クエリでは、クエリデザイン画面にある「集計」ボタンを使います。
このボタンを押すと、デザイングリッドに「集計」という行が現れて、それぞれのフィールドに「グループ化」「合計」「カウント」「平均」「最大」「最小」などを指定できるようになります。
普通の選択クエリは明細データをそのまま表示しますが、集計クエリにすると、同じ値を持つレコードが1つにまとまって、指定した計算結果だけが表示されるんです。
たとえば、請求先ごとの請求金額を集計したいときは、「請求先」フィールドをグループ化にして、「請求金額」フィールドを合計にします。
そうすると、同じ請求先の複数のレコードが1行にまとまって、請求先ごとの合計金額が表示されます。
この仕組みは、レポート作成、CSV出力、月次集計、売上分析など、Accessを仕事で使うときにすごくよく使う機能なんです。
ちなみに、Accessにはデータシートビューで一時的に合計やカウントを表示できる「集計行」というのもあります。
ただしこれは、画面上で確認するための簡易的な集計なので、レポートや別のクエリで再利用するには向いていません。
仕事の処理として集計結果を保存したり、他のクエリやフォーム、レポートで使ったりする場合は、集計クエリとして作成するのが基本です。
合計を出す集計クエリの作り方
Accessのクエリで合計を出すには、まず集計したい元データが入っているテーブルかクエリを用意します。
たとえば、売上情報を管理するテーブルに「顧客名」「売上日」「商品名」「数量」「売上金額」があるとします。
この中から「顧客名ごとの売上金額合計」を出したい場合、クエリデザインで対象のテーブルを追加して、必要なフィールドとして「顧客名」と「売上金額」をデザイングリッドに並べます。
次に、リボンの「集計」ボタンをクリックして、デザイングリッドに「集計」行を表示させます。
最初は、それぞれのフィールドに「グループ化」と表示されることが多いです。
ここで「顧客名」はそのままグループ化にしておいて、「売上金額」は集計行の選択肢から「合計」を選びます。
この状態でクエリを実行すると、顧客名ごとに売上金額が合計された結果が表示されます。
基本的な設定は、こんなふうに考えるとわかりやすいですよ。
– まとめたい項目:グループ化
– 足し算したい数値項目:合計
– 結果に表示しない条件項目:Where条件または抽出条件を使う
合計を使うときに大事なのは、合計できるのは基本的に数値型や通貨型のフィールドだということです。
文字列型の「顧客名」や「商品名」に対して合計を指定しても、数値として足し算できないので、うまくいきません。
また、単価と数量から金額を計算している場合は、「数量×単価」を明細ごとに計算してから合計するのか、数量合計と単価を別々に扱うのかで、結果が変わることがあります。
実際の仕事では金額のズレを防ぐために、計算用クエリと集計用クエリを分ける設計がおすすめです。
月別や担当者別に集計したい場合も、考え方は同じです。
担当者別なら「担当者」をグループ化して、「売上金額」を合計にします。
月別集計なら、売上日から年月を取り出す計算フィールドを作って、その年月をグループ化の軸にします。
たとえば、Format関数を使って売上日を「yyyy/mm」の形式に変換してからグループ化すれば、月単位の売上合計が作れます。
カウントで件数を数える方法と注意点
Accessのクエリで件数を数えたいときは、集計行で「カウント」を選びます。
カウントは、グループ化した単位ごとにレコード数を数える機能です。
たとえば、「担当者ごとの対応件数」「顧客ごとの注文回数」「支店ごとの売上実績件数」などを確認したいときに使います。
合計が金額や数量を足し上げる処理なのに対して、カウントは該当するデータが何件あるかを数える処理なんです。
カウントを設定するときは、どのフィールドをカウント対象にするかが重要です。
AccessのCount関数は、指定したフィールドのNull値(空欄)を数えません。
Nullというのは、値が未入力で何も入っていない状態のことです。
なので、空欄になる可能性があるフィールドをカウント対象にすると、実際のレコード数より少なく表示されてしまうことがあります。
実際の仕事では、主キーやIDのように必ず値が入るフィールドをカウント対象にするのが安全です。
たとえば、注文テーブルに「注文ID」があるなら、「顧客名」をグループ化して、「注文ID」をカウントにすると、顧客ごとの注文件数を正確に数えやすくなります。
売上金額や備考欄のように空欄の可能性があるフィールドを使うと、件数が合わない原因になるので注意してください。
また、カウント結果の列名は、最初は「注文IDのカウント」みたいに表示されます。
意味はわかりますが、レポートやエクスポートで使う場合はちょっと見づらいですよね。
そんなときは、フィールド欄に「件数: 注文ID」のように別名を付けると、結果の列名を「件数」にできます。
合計の場合も同じで、「売上合計: 売上金額」と設定すれば、集計結果の見出しがわかりやすくなります。
カウントには、全体件数を数える使い方と、カテゴリ別に数える使い方があります。
全体のレコード件数だけを知りたい場合は、グループ化するフィールドを置かずに、IDフィールドだけをカウントする方法があります。
一方で、担当者別やステータス別の件数を知りたい場合は、担当者やステータスをグループ化して、IDをカウントします。
「何件あるか」だけじゃなくて「何ごとに数えたいのか」を先に決めると、設定を間違えにくくなりますよ。
実際の仕事で失敗しないためのコツとエラー対策
Accessの集計クエリでよくある失敗の1つが、集計後に明細データが見えなくなって戸惑うケースです。
集計クエリは、同じグループのデータを1行にまとめるための機能なので、元の明細行をそのまま表示するものではありません。
たとえば、顧客別に売上合計を出すと、個々の売上日や商品名はそのまま表示できなくなります。
明細も集計結果も両方必要な場合は、明細用クエリと集計用クエリを分けて作るのが基本です。
もう1つ注意したいのが、抽出条件の指定方法です。
たとえば「2026年1月の売上だけを顧客別に合計したい」という場合、売上日フィールドを条件として使います。
このとき、売上日を表示結果に出したいわけじゃなくて、条件指定だけに使いたい場合は、集計行で「Where条件」を選んで、表示チェックを外す方法があります。
または、抽出条件欄に期間条件を指定してから集計する方法もあります。
どちらの場合も、「集計する前に対象データを絞り込む」という考え方が大切です。
集計クエリでは、フィールドを追加しすぎることにも注意が必要です。
グループ化に設定したフィールドが増えるほど、集計結果は細かく分かれます。
たとえば「顧客名」と「商品名」をどちらもグループ化すると、顧客別ではなく「顧客別かつ商品別」の集計になります。
意図せず行数が増えてしまう場合は、不要なフィールドがグループ化に入っていないか確認しましょう。
実際の仕事で管理しやすいクエリ構成にするなら、こんなふうに役割を分けると安定します。
– **元データ取得クエリ**:必要なテーブル結合や抽出を行う
– **計算用クエリ**:税込金額、年月、利益などを計算する
– **集計クエリ**:合計、カウント、平均、最大、最小などを行う
– **出力用クエリ**:レポートやCSV出力に合わせて列名や並び順を整える
こんなふうに分けておくと、あとから条件変更や項目追加があっても、どこを修正すればいいかわかりやすくなります。
特に請求処理や売上管理のように金額を扱う仕事では、計算と集計を1つのクエリに詰め込みすぎると、原因調査が難しくなります。
Accessは小規模な業務システムでも長く使われることが多いので、最初から保守しやすい構成を意識することが大切です。
まとめ
Accessのクエリでデータをグループ化・集計する方法は、基本的には「集計行を表示する」「まとめる項目をグループ化にする」「計算したい項目を合計またはカウントにする」という流れで理解できます。
合計では数値型や通貨型を対象にして、カウントではNullの影響を避けるためにIDなど必ず値が入るフィールドを使うと安全です。
さらに、条件指定や列名の付け方、明細クエリとの分離まで意識できるようになると、Accessの集計クエリは単なる確認作業じゃなくて、帳票作成や業務改善に使える実践的な機能になりますよ。
広告
