12/03/2022

Access。Excelで順位を算出するには、RANK.EQ関数ではAccessではどうやるの。【rank】

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」をすることで、順位を算出できます。