9/25/2019

Access。ランキングでSを先頭として並び替えるにはどうしたらいいの?【RANK&SORT】

Access。ランキングでSを先頭として並び替えるにはどうしたらいいの?

<Access>

数値で表した順位は、昇順にすれば、順位で並べることがAccessでもExcel同様に、簡単に並び替えることができますが、自分で設定した順位、例えば、スペシャルなので、Sが一番良くて、次がAで、続いてBというように、ABC…というアルファベット順でなくて、Sが先頭のランキング順に並び替えをしたい場合、Accessではどのようにしたらいいのでしょうか?

アルファベットも、ABC…という順番でしたら、昇順でクエリを作成すればいいだけなので、問題はありませんが、今回のようなケースでは、アイデアが必要です。

それでは、次のテーブルを、Sから始まる順番で並び替えしたクエリを作成していきましょう。

ランキングフィールドを並び替えしたいわけです。
作成タブのクエリデザインを使って、クエリを作成していきましょう。
T店舗売上のフィールドは、今回全部使用しております。

【Sを1、Aを2と設定したいので、Switch関数】

数字だったら、昇順で簡単に並び替えができますので、考え方として、Sが1位で、Aが2位なわけです。
ということは、Sを1と設定することができればいいわけです。

そこで、登場するのが、『Switch関数』です。Excelでは、Office365のExcelやExcel2019から追加された関数なので、あまりなじみがないかもしれませんが、Accessには、以前から搭載されている関数です。

演算フィールドを作成します。
ダミー: Switch([ランキング]="S",1,[ランキング]="A",2,[ランキング]="B",3,[ランキング]="C",4)

それでは、演算フィールドを説明します。

演算フィールド名は、最終的に表示することはありませんので、なんでもかまいません、今回は、ダミーとしておきます。

そして、Switch関数を使います。
引数の中は、一目瞭然ですが、Sだったら、1というように算出する演算式です。

では、実行して確認してみましょう。

演算フィールドのダミーには、ランキングのアルファベットに対応した数値が算出されていることが確認できました。

ここまでできれば、あとは簡単ですね。

デザインビューに表示を戻して、設定してきましょう。

並び替えの条件に、「昇順」を設定します。

そして、この演算フィールドの結果を表示する必要がないので、表示の行のチェックマークをオフにしましょう。

では、実行して、データシートビューで確認してみましょう。

このように、ランキングをSから先頭として、A・Bと続く順番で並び替えをすることができました。

Switch関数は、このような使い方ができますので、Excelでも機会があれば使ってみると業務が改善できるところがあるかもしれませんね。