ExcelとAccessのスキルアップをサポートするサイトです

ExcelとAccessの学習室

【Accessクエリ入門】4回目-集計クエリを作る方法

この記事で学習できること
  • 集計クエリでどんなことができるかが分かる
  • 集計クエリを作るステップが分かる
  • 集計クエリをさらに便利に使いこなせる方法も分かる

現在Accessクエリの使い方についてシリーズで投稿していますが、第4回目は「集計クエリ」の使い方についてまとました。

選択クエリに慣れてきた方は、次は集計クエリの学習に進みましょう。
集計クエリは、グループ別でいろいろな集計ができる機能です。
使う機会が多い便利な機能なので、がんばって習得しましょう。

集計クエリでできること

まず、Accessにデータを溜める目的について考えてみましょう。
「記録を残して後でいつでも見返すために」という考え方も、もちろん正しい考え方です。

しかし、それだけではデータが持つ価値を十分には活用できません。
「いろんな角度から集計してデータの傾向をつかむ」ということも、データベースを使う大きな目的ではないでしょうか?

  • 担当者ごとの売上
  • 月別の発注金額や件数
  • カテゴリーごとの合計

かんたんに例を挙げてみましたが、使っているデータベースによって集計したい方法はいろいろなものがありますよね。
集計クエリを使うことで、「項目でまとめて集計する」ということがかんたんに実現できます。


また、この記事を読んでいる方の中には、きっとExcelに限界を感じてAccessに挑戦している方もいるのではないでしょうか?
私も過去にExcelだけで集計を完結させようとしていましたが、下のような問題に直面して先に進めなかった経験があります。

  • 式がズレて間違った結果が出力される
  • データが増える度に集計表の見直さないといけない

一方、Accessの集計クエリを使うと、数式ズレや保守のための修正に気を配らなくてもよいのでかなり楽です。

集計クエリを作る3つのステップ

集計クエリは下の3ステップで操作するだけです。

  1. 必要なフィールドだけを選ぶ
  2. リボンの集計ボタンをクリックする
  3. 集計方法を設定する

これはよく行う作業なので、できれば何回か繰り返して身体に染み込ませましょう。

本記事では、テーブル「T02発注伝票」に入力されている8件のレコードを集計してみます。
テーブルにどんなデータが入っているかよく見てみましょう。

発注先名や月名、発注者など、グループ化でまとめられそうな項目がいくつかあります。
また、フィールド「発注金額」では合計や平均を計算できそうですね。

ステップ1-必要なフィールドだけを選ぶ

まず、集計クエリをつくるときは必要なフィールドだけを選ぶようにしましょう。
『月別の合計金額』を集計したい場合は、月名と発注金額だけを選びます。

例えばフィールド「発注先」も一緒に選択 した場合、『月別発注先別合計金額』といった、より細分化された表が作られてしまいます。
『月別合計金額』を求めているのに、違う結果になってしまうと意味ないですよね。

余計なフィールドまでグループ化されないよう、どのフィールドが必要かを見極めましょう。

ステップ2-リボンの集計ボタンをクリックする

フィールドを選んだらリボンの集計ボタンをクリックします。

グリッドに「集計方法」と表示されました。ここで対象フィールドの集計方法を設定できます。

これで選択クエリから集計クエリへの切り替えは完了です。


また、アスタリスク(*)を選択した状態で集計ボタンをクリックするとエラーが表示されてしまいます。

アスタリスクを使うと、使わないフィールドも選択されてしまい、思い通りの集計結果を出せなくなるためです。
SQL文をシンプルにするのには便利なのですが、集計クエリでは使えないので気をつけましょう。

ステップ3-集計方法を設定する

集計方法の初期設定は「グループ化」に設定されています。
「グループ化」とは、集計方法が設定されていない状態です。

集計欄をクリックすると、プルダウンでいろいろな集計方法を選べます。
合計・平均・カウント・平均・最大値・最小値など、Excelでも集計関数として日頃よく使うものが設定できるようです。

ここでは月別の合計金額を計算するので、「合計」を選びます。

データシートビューに切り替えると、集計表が作られているのを確認できました。
集計フィールドの名前が『発注金額の合計』となっているので、もっとシンプルにしてみます。

デザインビューに戻して『合計金額:発注金額』に修正します。

フィールド名が『合計金額』に修正されました。
使い捨てのクエリは敢えてフィールド名を修正する必要はないのですが、普通に使いまわす場合はふさわしい名前に修正するよう心がけましょう。
フィールド名がムダに長いと見づらくなります。

さらに、発注者を追加して「月別発注者別件数」を集計してみましょう。
集計フィールドも「カウント」に変えて、名前を「発注件数:発注金額」に修正します。

月と発注者にグループされた状態で件数を表示できました。

このように、複数のフィールドをグループ化も可能なので、いろんなパターンを試してみましょう。

応用1-演算を使って高度な集計を行う

選べる集計方法の中に「演算」とありますが、数式を設定するために使われます。

  • 複数の集計方法を組み合わせたい
  • 合計した後に消費税を加えたい

といった、よりアレンジさせて集計したい時にも、クエリやフィールドを余計に増やすことなく結果を表示できます。

試しに月別の平均金額を集計してみます。
集計方法を「演算」に変更し、フィールド名を『平均金額:Sun([発注金額])/Count([発注金額])』とします。

データシートビューに切り替えてみると、平均金額を求めることができました。

このように、集計クエリの「演算」では、Excelと同じように関数を組み合わせて独自の集計方法を当てはめることができます。


ちなみに、集計方法に「平均(Average)」も選べますが、空白データ(Null)も1件のデータとして認識されてしまいます。
空白データを無視したいときは 「合計(Sum)」 と 「カウント(Count)」を組み合わせて平均値を求めるとよいでしょう。

応用2-Where条件で対象を抽出

他には「Where条件」という集計方法も選べますが、一体何をするためにあるんでしょうか?

「Where条件」を使うと、集計を行う前のデータに条件を設けて不要なものを排除することができます。

一方、集計後のフィールドに抽出条件を設定すると集計後のデータに条件を設けることになります。

どのようにデータを集計したいかでニュアンスが微妙に変わってきますので、違いを把握しておきましょう。

Where条件の使い方を知らないと、下のような手順でクエリを重ねてしまいがちです。

  1. 条件抽出したクエリ1を作る
  2. クエリ1を集計してクエリ2を作る

要所でWhere条件を使えばクエリの数を減らせるので、覚えておきたいテクニックですね。

まとめ

今回は、Accessの集計クエリについて解説しました。
Accessの集計クエリを使えるようになれば、溜められたデータに新しい価値を生みだすことができます。

集計クエリを使ったことの無い方は「合計」などの簡単な集計方法から試してみましょう。
きっと便利さを感じていただけると思います。

簡単な集計に慣れてきたら「演算」や「Where条件」にも挑戦してみましょう。
クエリを重ねずに一発で求めていた結果を出せるので、データベース内のクエリの数を減らせます。


当ブログでは、Accessアプリの使い方について解説した他の記事もあります。
下にまとめ記事のリンクを入れておきますので、よかったらごらんください。

https://sys-daddy.com/learning-access-apps