12/10/2018

Access。集計キーを複数指定して、店舗別男女の平均年齢を集計してみる【SUBTOTAL】

Access。集計キーを複数指定して、店舗別男女の平均年齢を集計してみる

<Access>

集計するクエリでは、集計したいキーのフィールドを複数指定することができるので、店舗別に来店したお客様の性別ごとの平均年齢などを、簡単に集計することができるのも、Accessのクエリの特徴なのかもしれませんね。

では、次のようなテーブルがあります。

1つは、T顧客データ。

もう一つが、T店舗名。

では、作成タブのクエリデザイン使って、クエリを作成していきます。

T顧客データの店舗NO
T店舗名の店舗名
T顧客データの性別
T顧客データの年齢
の各フィールドを使ってみますが、当然このままでは、店舗名が表示されただけのデータで集計をしてくれるわけではありません。

現状クエリがどうなっているのかを確認しておきましょう。
表示をデータシートビューに切り替えてみましょう。

そこで、まずは、集計させていきますので、デザインタブの集計をクリックします。

集計行が表示されますので、次のようにアレンジしていきます。

店舗NOですが、集計はグループ化します。これで店舗ごとに集計することができます。

これは、次の店舗名も同様です。
あと店舗NOは、並び替えを昇順にしておきます。

性別ですが、1なら男性・2なら女性という管理をしております。

T性別というテーブルを作ってそこから、男性・女性を参照させてもいいのですが、このように2件だけで固定されている場合は、演算フィールドとして、男・女を表示させるほうが効率的だと思われます。

そこで、性別のフィールドは、
男女: IIf([性別]=1,"男","女")
と演算フィールドを作っておきます。

性別フィールドが1だったら、男。そうでなければ、女と表示したいので、このような場合はIIf関数を使うといいですね。

今回は、性別ごとに集計しますので、集計行は、こちらもグループ化で設定しておきます。

最後に、平均した年齢を算出させますので、演算フィールドを作っていきます。

平均年齢: Round(Avg([年齢]),0)
Round関数をつかっているのは、年齢の平均を算出すると、だいたい小数が含まれた数値を算出することが多くあるので、Round関数を使うことで、小数以下を整えているわけですね。

集計関数のAvg関数ですが、Avg(フィールド名)で、平均を算出することができます。

最後の集計行ですが、集計関数を記述するときには、『演算』と設定します。

それでは、実行ボタンをクリックしてみましょう。

このように、各店舗別で性別ごとの平均年齢を算出することができましたね。

集計もクエリが得意としているうちの一つだと思いますので、色々クエリを作成してみるといいかもしれませんね。