Switch関数

 複数の条件と値の組み合わせに基づき、最初に真(True)と評価された条件に対応する値を返します。

使用例

 右のようなテーブルをもとに成績判定を行うものとします。
 判定基準は次のとおりです。
90点以上:A
75点以上90点未満:B
60点以上75点未満:C
60点未満:D


 クエリデザインの画面です。ここで次のような列を設けます。



ランク: Switch([点数]>=90,"A",[点数]>=75 And [点数]<90,"B",[点数]>=60 And [点数]<75,"C",[点数]<60,"D")


 データシートビューです。


 ただし、この関数は「最初に真となった条件」に対応する値を返すものですので、上記の式の2つ目の条件のうち「 And [点数]<90」は記述する必要はありません(そもそも90点未満だから2つ目の条件に移って判定しているということです)。よって単に「[点数]>=75」としても問題ありません。同様に3つ目の条件も単に「[点数]>=60」として問題ありません。
 また、条件に「True」と記せば具体的な条件を記すまでもなく必ず真となりますので、最後の条件にはこう記しておくのもテクニックです。ただし、仮に点数がNullでもTrueとなり「D」を返しますので注意が必要です。


 データシートビューです。同じ結果が得られているのがわかります。


 なお、即値による関数の実行結果の例をいくつか挙げてみます。

表記例出力例説明
Switch(82>=90,"A",82>=75 And 82<90,"B",82>=60 And 82<75,"C",82<60,"D")B2つ目の条件である「82>=75 And 82<90」が真となりますので、それに対応する「B」が返ります
Switch(82>=90,"A",82>=75,"B",82>=60,"C",True,"D")B条件としては「82>=75」と「82>=60」そして「True」の3つが真となりますが、このうち「82>=75」が最も先頭に近いので、それに対応する「B」が返ります
Switch(10>=90,"A",10>=75,"B",10>=60,"C")Null真となる条件が1つもない場合、Nullを返します

書式

Switch(条件式1,値1[,…,条件式i,値i,…,条件式n,値n])

 条件及び値は少なくとも1つずつ指定する必要があります。

備考

 IIf関数をネスト(重ねて使う)すれば同じように使えますが、Switch関数の方が記述を簡素にすることができます。