Access。多分岐判定処理なら、Iif関数よりもSwitch関数のほうが楽かもしれません。
<Access:Switch関数>
テーブルに店舗NOフィールドがあって、その左から2文字が地域を表していますが、わかりにくいので、地域名というフィールドのあるクエリを作ることにしました。
店舗NOフィールドの左から2文字が、「KS」ならば、関西。
「KT」ならば、関東。
そして、「TK」は、東京を表しています。
最終的に作りたいのが次のクエリです。
地区名フィールドを加えたクエリをつくるわけですが、今回のように、条件分岐が3つにわかれた多分岐になっています。
Iif関数をネストして、Iif+Iif関数とすれば、三分岐することは、可能といえば可能ですが、今回はたまたま、3つにわかれるだけで、例えば、九州に出店して、”KS”なんていうのが登場したら、Iif+Iif+Iff関数となってしまい、とても煩雑になってしまいます。
そこで、多分岐の場合は、Switch関数をつかうことで、わかりやすい演算フィールドをつくることができます。
なお、Excelには、Office365のExcel2016から「SWITCH関数」が追加されました。
それでは、クエリを作っていきましょう。
作成タブにある「クエリデザイン」をクリックします。
今回は、テーブルのすべてのフィールドを使います。
そして、地域名の演算フィールドですが、左から2文字が判断になっていますので、Left関数を使う必要がありますので、演算フィールドが、ちょっと長くなります。
ズームをつかって作ってもいいかと思います。
作成する演算フィールドは、
地区名: Switch(Left([店舗NO],2)="TK","東京",Left([店舗NO],2)="KT","関東",Left([店舗NO],2)="KS","関西")
Left([店舗NO],2)="TK" は、店舗NOフィールドの左から、2文字がTKだったらという意味になります。
このように多分岐させたい時の演算フィールドは、Switch関数を使うと簡単に設定することができます。
なお、こんなに長い演算フィールドを入力して作成するのなら、SQLでつくっても大差がないと思われますので、SQLでつくると、次のようになります。
SELECT T店舗地区名簿.店舗NO, T店舗地区名簿.店舗名, Switch(Left([店舗NO],2)="TK","東京",Left([店舗NO],2)="KT","関東",Left([店舗NO],2)="KS","関西") AS 地区名 FROM T店舗地区名簿;
Accessにも色々関数が用意されていますので、使ってみると意外と使えるものが見つかるかもしれませんので、試してみるといいかもしれませんね。