こんにちはmasalifeです。
今回はクエリを使って、「支店ごと・担当者ごと・商品ごと」といった単位ごとでの集計方法を紹介します。
クエリには約10種類の集計機能が搭載されていますが、その中でも使用頻度が高い
・グループ化
・合計
・カウント
・最小/最大
・where条件
について紹介します。
学習コストが低いのでExcel使用者にもオススメです。
クエリを使うメリット
集計はExcelでやっているという方でもAccessを試してみようと思ってもらえるポイントとして、
メンテナンスの容易さがあります。
例えば、データが定期的に追加となる場合、
Excelだとフィルタをかけて順番を並び替えたり、関数の引数の範囲を変更したりと何かしらの修正が必要となります。
一方、Accessだとテーブルのデータがどれだけ追加されたとしても、クエリを実行するだけで、追加したデータが反映された状態で集計してくれます。
「データを追加し終わったら、このクエリを実行して、印刷しといて」
といったように細かい指示をすることなく集計結果を得ることが出来ます。
これを機に次から紹介する簡単な集計であれば、Accessを使ってみてはいかがでしょうか。
クエリの集計機能
グループ化
「単位ごとに集計する」の単位ごとを作成する機能で集計のベースとなります。
グループ化の機能はその名のとおり「同一のデータをまとめる」ことにあります。
一般的には他の集計機能と組み合わせて使用しますが、マスタを作成、重複データを除外するときには単体で使用します。
例として、契約情報が格納されているテーブル(T_契約)から、契約を獲得した担当者一覧を作成します。

作成タブからクエリをデザインビューで開いて、

①担当者→リボンにある②【集計】アイコンの順番でクリックします。
集計の行がグループ化となっていることを確認して、クエリを実行します。

契約獲得者の一覧を作成することが出来ました。
契約情報は日々更新されていくものですが、このクエリを一つ作成しておけば、契約獲得者一覧の作成はクエリを実行するだけで可能となります。
特段のメンテナンスがいらいないから便利ですよね。
合計
指定したフィールドの値を合計する機能です。
例として、契約情報が格納されているテーブル(T_契約)から、支店ごとの契約金額を作成します。

作成タブからクエリをデザインビューで開いて、

①支店コード→②契約金額→ リボンにある③【集計】アイコンの順番でクリックし、最後に契約金額の集計を④合計とします。
※支店コードごとのため、支店コードをグループ化します。
クエリを実行すると、

支店ごとに契約金額を合計することが出来ました。
カウント
指定したフィールドのレコード数をカウントする機能です。
例として、契約情報が格納されている テーブル(T_契約)から、支店ごとの契約数を作成します。

作成タブからクエリをデザインビューで開いて、

①支店コード→②契約金額→ リボンにある③【集計】アイコンの順番でクリックし、最後に契約金額の集計を④カウントとします。 (フィールド見出しは契約数としています。)
※支店コードごとのため、支店コードをグループ化します。
クエリを実行すると、

集計結果が得られました。
この実行結果を整理すると、

カウントはレコード数を数える機能であることが分かります。
「合計」の集計機能が値を扱うのに対して、「カウント」の集計機能はレコード数を扱うので、
担当者フィールド、契約年月日フィールドのどちらで集計しても同様の結果が得られます。
契約数を出すのであれば、契約年月日フィールドで集計した方が何をしているのか分かりやすいかもしれませんね。
初学者は「合計」と「カウント」の違いで悩みやすいので、例を参考にしっかりと理解してください。
最小/最大
指定したフィールドで1番小さい/大きい値を取得する機能です。
例として、契約情報が格納されているテーブル(T_契約)から、支店ごとに最大の売上金額を取得します。

作成タブからクエリをデザインビューで開いて、

①支店コード→②契約金額→ リボンにある③【集計】アイコンの順番でクリックし、最後に契約金額の集計を④最大とします 。(見出しは最大の売上金額としています。)
※支店コードごとのため、支店コードをグループ化します。
クエリを実行すると、

支店ごとの最大売上金額を取得できました。
最小売上金額は集計を「最小」とするだけで、考え方は一緒です。
where条件
集計するデータを抽出する機能です。
抽出と聞くと「抽出条件」を思い浮かべる方が多いと思いますが、クエリの集計においてはwhere条件と抽出条件は明確に区別され、実行結果も異なります。
where条件 | 集計するデータを抽出 |
抽出条件 | 集計してからデータを抽出 |
where条件の例として、 契約情報が格納されているテーブル(T_契約)から、100000以上の売上金額のみで支店ごとに合計を作成します。

作成タブからクエリをデザインビューで開いて、

①支店コード→②契約金額→③契約金額→ リボンにある④【集計】アイコン→契約金額フィールドの集計を⑤合計→もう一方の契約金額フィールドの集計を⑥Where条件→最後にWhere条件の抽出条件を⑦>=100000とします。
クエリを実行すると、

支店コード27のレコードのみが取得できます。
元のデータとクエリの実行結果を整理すると、

Where条件は集計するデータを抽出する機能であることが分かります。
それでは次に抽出条件を使った例を見てみます。

契約金額の集計を合計し、抽出条件を>=100000とします。
クエリを実行すると、

Where条件と異なった結果が得られます。
元のデータとクエリの実行結果を整理すると、

抽出条件はデータを集計し、集計してから抽出する機能であることが分かります。
どちらも抽出する機能であることから間違えやすいので注意してください。
さいごに
クエリの集計機能は本当に便利です。
パソコンが苦手で毛嫌いしている方でも、クエリを使った集計方法を少し教えただけで、自分でやってみて分からないところを質問するようになりました。
「これなら出来るかも」と感じているからだと思います。
教えていて、これほど嬉しいことはありません。
みなさんも挑戦してみてはいかがでしょうか。
最後まで読んでいただきありがとうございました。