3/17/2017

Access。クエリで平均以上を抽出する方法をご紹介

Access。クエリで平均以上を抽出する方法をご紹介

<Access>


以外に簡単そうに思えて、出来ないものというのがAccessには結構ありまして、
Excelだと平均を求めようとしたら、AVERAGE関数を使うなんていうのが、
すぐ頭に思い浮かぶことでしょう。

Accessにも、Ave関数というのがあることはあるのですが、
今回ご紹介したい内容では、使えない。

で、どのようなケースなのかというと、

次のような顧客ごとの金額合計値を求めた、Q合計クエリというのがありまして、

例えば、金額の合計フィールドで10万円以上とか、
5万円以下ということならば、抽出条件で
>=100000
とか
<=50000
を設定すれば、いいわけでして、

この場合は特に困るコトはないと思われますが、

例えば金額の合計フィールドの平均以上だけを
抽出したいとしたらどのようにしたらいいのでしょうか?

というのを今回ご紹介していきます。

先ほども書きましたが、
Excelだったら、AVERAGE関数なんてことをイメージしたいところですが、
そういうわけにはいかないので、別の方法を考える必要があるのです。

まずは、このQ合計をデザインビューで確認してみましょう。

顧客ごとに集計するために、集計を使い、
金額フィールドの合計を【金額の合計】フィールドとして、
合計で集計してあります。

そこで、今回のように平均以上とかの【平均】の抽出には、
DAvg関数と比較演算子を組み合わせる事によって、
平均以上とかの条件で抽出することが出来ます。

では、早速作っていきましょう。
まずは、クエリからクエリを作成しますので、
F12キーを使って、クエリの名前を付けます。

今回は、Q合計平均以上というクエリにします。

クエリからクエリを作成する場合に、先に名前をつけて置きませんと、
上書きしてしまって、前のクエリが壊れてしまうことがありますので、
注意が必要ですね。

金額の合計フィールドの抽出条件にDAvg関数を設定します。
今回は以上ですので>=をつけますが、ここでAccessがExcelと違うポイント。

それは、絶対に、直接入力。つまり半角で入力する必要があるということです。
全角で入力してしまうと、うまくいきませんので、ご注意ください。

では、抽出条件に次のようにDAvg関数を使って入力します。

>=DAvg("[金額の合計]","Q合計")

これで、OKですので、結果を表示してみましょう。

これで、平均以上という条件で抽出することが出来ました。

このDave関数の引数は、
DAvg(フィールド, テーブル, 条件)となっていますので、
テーブル-フィールドという順番ではありませんので、順番に気をつけましょう。