【クエリ】集計欄(グループ化・合計・平均など12種類)を解説

クエリ

クエリで「集計」ボタンを押すと、デザインビューに「集計」という行が現れます。
この「集計」欄を使うことで、値の合計・平均・カウント・標準偏差など、さまざまな集計処理が可能になります。

この記事では、集計欄に設定できる全12種類の内容を、Access画面例を交えてわかりやすく紹介します。

集計欄の基本事項

集計欄を表示する手順

  • クエリをデザインビューで開く
  • リボンの[表示]タブ → [集計]をクリック
  • デザイングリッドの下部に「集計」行が追加される

↓↓↓

この集計行に「グループ化」「合計」などを指定します。
次項でさっそく、12種類の機能について具体例を解説していきましょう。

12種類の集計行選択肢を解説

各選択肢の説明を行うにあたり、サンプルとして下記テーブルを用意しました。

サンプルテーブル

このテーブルのデータを色々とグループ化していきます

グループ化

グループ化は、これから説明する11種類の選択肢(合計平均など)の処理において、集計の基準(軸)となる項目を指定する設定です。
つまり、「〇〇を合計する」の“〇〇”にあたる部分を決めるのが、グループ化です。

グループ化を設定する様子は、他項目の説明と合わせ行います。

合計

グループ化したフィールドの合計値を取得します。

【設定例:支店別の売上合計】

支店フィールドをグループ化、売上金額フィールドに合計を選択します。

集計の設定例

【結果】

支店別の売上金額合計が表示されます。(※東京支店の3レコードが1レコードにまとめられます。)

集計の結果

平均

グループ化したフィールドの平均値を取得します。

【設定例:支店別の売上平均】

支店フィールドをグループ化、売上金額フィールドに平均を選択します。

平均の設定例

【結果】

支店別の売上金額平均が表示されます。(※東京支店の3レコードが1レコードにまとめられます。)

平均の結果

最小

グループ化したフィールドの最も小さい値を取得します。

【設定例:担当者別の売上日の最も過去日】

担当者フィールドをグループ化、売上日フィールドに最小を選択します。

最小の設定例

【結果】

担当者別の売上日のうち最も過去日(値として最小)が表示されます。(※佐藤さんの2レコードが1レコードにまとめられます。)

最小の結果

最大

グループ化したフィールドの最も大きい値を取得します。

【設定例:担当者別の売上日の最新日】

担当者フィールドをグループ化、売上日フィールドに最大を選択します。

最大の設定例

【結果】

担当者別の売上日のうち最新日(値として最大)が表示されます。(※佐藤さんの2レコードが1レコードにまとめられます。)

最大の結果

カウント

グループ化したフィールドのレコード件数を取得します。
Null値はカウントされませんので、カウント対象のフィールドはNull値が発生しないフィールド(主キーがおすすめ)を指定する必要があります。

【設定例:支社別の売上実績件数】

支店フィールドをグループ化、売上金額フィールドにカウントを選択します。

カウントの設定例

【結果】

支社ごとにグループ化してレコード件数をカウントすると、複数の実績を持つ東京支社は3件としてカウントされます。

結果の項目名が「売上金額のカウント」と表示されていますが、前述のとおりカウント対象のフィールドは Null値が含まれていなければどれでも構いません。そのため、「売上金額」という表記は実際には意味を持ちません。

見やすくするには、デザインビューのフィールド欄に「件数: 売上金額」と設定しましょう。
これにより、結果が「件数」という名前で表示され、より分かりやすくなります。

カウントの結果

標準偏差

グループ化したフィールドの標準偏差に関する値を取得します

標準偏差は、指定したフィールドの値における「データのばらつき具合」を表す統計指標です。

たとえば、同じ地域の売上が毎月ほぼ同じ金額であれば標準偏差は小さくなります。
一方、月ごとに金額が大きく変動する場合は、標準偏差が大きくなります。

実際の具体例を見てみましょう。

【設定例:支社別の売上金額に対する標準偏差】

支店フィールドをグループ化、売上金額フィールドに標準偏差を選択します。

標準偏差の設定例

【結果】

結果は、東京支社のみ3,000になりました。なぜ標準偏差が3,000になるか解説します。

標準偏差の結果

まず元々の支社「東京」の売上実績は次の3件です。

  • 東京 12,000
  • 東京 15,000
  • 東京 18,000

この3件の平均は 15,000円 です。
各データの平均からの差はそれぞれ −3,000円、0円、+3,000円。

これらの偏差の大きさを平均すると、データが平均値から約3,000円ほど離れていることがわかります。
つまり、この場合の標準偏差は 3,000円 となります。
その他の支店は、レコードが1件しかないため、そもそもバラつきが発生していないため、空欄となります。

標準偏差を求めるうえでの注意事項

Accessの標準偏差計算は、フィールドのデータ型によって結果が異なる場合があります。

特に「通貨型」では、計算過程で小数点以下の精度が制限されるため、実際よりも小さい値になるケースがあります。(今回の例では、売上実績フィールドを通貨型で扱っていますが、小数点を含まないため、正確に計算されています。)

標準偏差を正確に求めたい場合は、対象フィールドを数値型(倍精度浮動小数点数型)に設定するか、CDbl 関数を使って値を変換することをおすすめします。

分散

グループ化したフィールドの分散に関する値を取得します。

分散も標準偏差同様、「データのバラつき」を表す統計用語です。
分散はバラつきの“二乗平均”、標準偏差はその平方根を取って“実際の単位に戻した値”です。

分かりやすくいうと、標準偏差は実際のバラつき結果を示す言葉で、分散は理論的な計算の途中で使う言葉、と理解するとよいでしょう。

もっと嚙み砕くと
「分散」は“裏方” →(理論・計算向き)
「標準偏差」は“表舞台” →(結果・実務向き)
って感じかな

【設定例:支社別の売上金額に対する標準偏差】

支店フィールドをグループ化、売上金額フィールドに分散を選択します。

分散の設定例

【結果】

東京支社のみ9,000,000となりました。

分散の結果

標準偏差と異なり、金額が大きくてバラつきのイメージが付きづらいですよね。分散の値は「単位の二乗」で表されるため、金額のデータでは「円²」となり、非常に大きな数値になります。

バラつきの大きさを直感的に理解するには、分散ではなく「標準偏差」を確認するのが一般的です

先頭

グループ化したフィールド内で、最初に入力された値(先頭の値)を取得します。

ただし「先頭の値」は、テーブル上の実際の入力順を保証するものではありません。Accessが内部的に管理している順序に基づくため、意図したレコードが返らない場合もあります。利用する際は注意が必要です。

入力順に基づいたデータを確実に取得したい場合は、入力日付フィールドを用意し、データ登録時に日付を記録しておきます。その上で、集計行に「最小」を設定することで、入力順の先頭レコードを正確に取得できます。

【設定例:担当者別に最初に入力されたレコードの売上日】

担当者フィールドをグループ化、売上日フィールドに先頭を選択します。

先頭の設定例

【結果】

担当者別の売上日のうち先最初に格納されたレコードが表示されます。(※佐藤さんの2レコードが1レコードにまとめられます。)

ちなみに「並び順」を降順にしても結果は変わりません。

最後

グループ化したフィールド内で、最後に入力された値(最後尾の値)を取得します。

特徴は前述の先頭と同様です。

【設定例:担当者別に最後に入力されたレコードの売上日】

担当者フィールドをグループ化、売上日フィールドに最後を選択します。

【結果】

担当者別の売上日のうち最後に格納されたレコードが表示されます。(※佐藤さんの2レコードが1レコードにまとめられます。)

最後の結果

演算

グループ化したフィールドの値に対して計算式を作成し、計算後の値を取得します。

【設定例:売上日を起算日とした本日現在の経過日】

支店フィールド及び売上日フィールドをグループ化、新たに経過日フィールドを作成し、計算式としてDate()-[売上日] & "日"を設定する。

演算の設定例

【結果】

各レコードに対して、経過日を取得します。

Where 条件

Where条件は特定条件でデータを絞り込むために使用します。

【設定例:東京支社のみの売上金額合計】

支店フィールドをグループ化、売上金額フィールドに合計を選択します。売上日フィールドはWhere条件を選択し、条件に#2025/10/01#を設定します。このフィールドは条件指定のみで表示対象外にするため、表示チェックを外しておきます。

Where条件の設定例

【結果】

2025/10/01のみの、東京支店の売上合計を取得します。

まとめ

クエリのグループ化はとても使用頻度が高い機能です。特に合計、平均、カウント、演算、Where条件は様々なケースで使用することでしょう。また、先頭、最後のようにちょっとクセがあるものもありますので、それぞれの特徴をしっかり押さえておきましょう。

タイトルとURLをコピーしました