Access。Excelで順位を算出するには、RANK.EQ関数ではAccessではどうやるの。
<Access: Format関数とDCount関数>
データの順位を算出したい場合、Excelでは、RANK.EQ関数などを使うことで算出することができます。
Accessだと、RANK.EQ関数など順位を算出する関数はありません。
では、どのようにしたら順位を算出することができるのでしょうか。
クエリで算出させていきます。
まず、算出元となるのが、次のテーブルです。
作成タブのクエリデザインをつかって、今回は、Listeningの順位を算出することとします。
演算フィールドには、次のように設定します。
順位: Format(DCount("Listening","T英語","Listening>" & [Listening])+1,"00")
これで、順位を算出することができます。
この演算フィールドには、Format関数とDCount関数をつかっています。
Format関数はDCount関数で算出した値の桁がそろっていないので、1~9位の場合「0(ゼロ)」をつけて、揃えるためにつかっています。
順位を算出するために使用するのが、「Dcount関数」です。
なぜ、「DCount関数」という件数を算出する関数で、順位を算出することができるのかというと、最高値は、最高値よりも大きいデータはない。
つまり「0」となるわけです。
また、上位3位の場合、その値より大きいデータは、2件あるというのが求めることができればいいわけです。
そこで、条件を「"Listening>" & [Listening]」とすれば、いいわけですね。
ただ、1位の場合、その値よりも大きな数値はありませんから、「0(ゼロ)」と算出されてしまうので「+1」をすることで、順位を算出できます。