Switch関数でElseに相当する条件(いずれにも該当しない場合)を設ける

 Switch関数は(複数の条件式のうち)最初に真(True)と評価されたものに対応する値を返しますが、「それまで示した条件のいずれにも該当しない場合」という条件を厳密に表現しようとすると複雑になる場合があります。解決策としては条件に「True」と記せばOKですが、以下に実例を示します。


 右のようなテーブルがあります。「点数」に基づき、次のような条件で賞を与えるものとします(複数の条件にあてはまる場合は上位のものが優先)。

1.800点以上なら優秀賞
2.777点,555点,333点のいずれかならラッキー賞
3.500点以上600点以下なら普通で賞
4.300点以下なら残念賞
5.上記のいずれにも該当しない場合は参加賞


 クエリで上記の条件を表現してみます。
 次のような列を設けます。



賞: Switch([点数]>=800,"優秀賞",[点数] In (777,555,333),"ラッキー賞",[点数] Between 500 And 600,"普通で賞",[点数]<=300,"残念賞",True,"参加賞")

 さて、優秀賞から残念賞までの条件式は上記1から4の内容をそのまま反映したものとなっていますが、最後の参加賞に関する条件式は単にTrueとしています。Trueと書けば文字どおり真とみなされますので、1から4の条件を踏まえて細かく表現する必要はないというわけです。


 データシートビューです。上記の条件どおりに賞が付与されていることがわかります。
 ちなみにTrueの部分はとにかく真であればいいので1=1としてもいいですし、1とか-1(0以外の数値)でも大丈夫です。