2/20/2022

Access。クエリ。手早く年代別で集計したクエリをつくるにはどうすればいいの【By age】

Access。クエリ。手早く年代別で集計したクエリをつくるにはどうすればいいの

<Access:Int関数>

10代・20代というような10歳ごとに区分した売上高の集計を算出したいのですが、どのようにしたら、年代別に区分して、集計することができるのでしょうか?


次のようなテーブルをつかいます。

年齢フィールドから年代を算出したフィールドがあるクエリをつくり、さらにその年代を算出したクエリをつかい、集計させるという方法でもいいのですが、これでは、クエリを複数作ることになり、少し面倒です。


そこで、Int関数をつかった演算フィールドをつくることで、一つのクエリだけで、年代別の売上高集計のクエリをつくることができます。


作成タブの「クエリデザイン」をつかって、クエリをつくっていきます。

 


デザインビューで、演算フィールドを作っていきます。


年代を算出するためのフィールドですが、演算フィールドをInt関数で設定します。


年代: Int([年齢]/10) & "0代"


この演算フィールドはどのように処理をしているのか、年齢が35のケースをつかって説明します。

[年齢]を10で除算しますので、35÷10=3.5

3.5はInt関数で、整数化されます。

Int(3.5)=3

算出された結果に、「&”0代”」と文字結合しています。


年代: Int([年齢]/10)*10 & "代"

というように、10倍してもいいですが、別に10倍する必要がないので、単に0付で文字結合しています。


あとは、集計行を表示しますので、クエリデザインタブにある「集計」をクリックします。


Excelだと「オートSUMボタン」と同じシグマのマークですが、惑わされないようにしましょう。


年代フィールドは、グループ化と設定します。

売上高は、合計を算出したいので、「合計」と設定します。


年代を昇順に設定したら、実行して確認してみましょう。

 

これで、複数のクエリを使わないで、年代別で売上高を集計することができました。


AccessもExcel同様に、年代別で算出する場合、色々なやり方がありますので、試してみるのもいいかもしれませんね。