Access には、条件分岐のIIF関数が存在します。
このIIF関数では、条件式を入力することができますが、使うことができる条件式にはどんなものがあるのでしょうか?
今回は、IIF関数の条件式にフォーカスして、条件式として使える簡単な条件式から、より複雑な条件式まで、紹介していきたいと思います。
Access におけるIIF関数とは?
そもそも、IIF関数とは何なのでしょうか?
Excel のIF関数とは違うのでしょうか。いいえ、Excel のIF関数と同じ、条件分岐の関数です。
IIF関数の構文は以下の通りです。
IIF(条件式, 真の場合, 偽の場合)
- 条件式:条件を入力することができます。条件には、完全一致や部分一致の数式を入力することができます。
- 真の場合:条件式が真の場合に出力される値です。
- 偽の場合:条件式が真ではない場合に出力される値です。
ちなみに、Excel のIF関数は以下のページにて紹介していますので、気になる方は参照ください。
このように、任意の条件式を指定して、その値に一致する場合の出力値と、一致しない場合の出力値を分岐させることができます。
Access において、IIF関数を利用するシーンとしては、選択クエリの出力フィールドで出力結果を制御したり、選択クエリや追加クエリの抽出条件の中にIIF関数を入れ込んで、より複雑な抽出条件を記述することも可能です。
Access におけるIIF関数で使える条件式とは?
IIF関数の条件式で使用できる条件式は、データ型によって若干異なります。
- 文字列
- 完全一致
- 部分一致
- 不一致
- 部分不一致
- 数値・日付時刻
- 完全一致
- 大小
- 不一致
一部重複する部分もありますが、紹介していきたいと思います。
文字列
まず、条件式で文字列を利用する場合について紹介します。
完全一致
完全一致を表記する場合は一番分かりやすく以下のように指定すると良いです。
[フィールドA] = “一致”
[フィールドA] = [フィールドB]
条件式の右辺には、文字列を直接指定する場合と、別のフィールドを指定する場合とどちらも指定することができます。
部分一致
部分一致を表記する場合は以下のように指定すると良いです。
[フィールドA] Like “一致*”
[フィールドA] Like “*一致”
[フィールドA] Like “*一致*”
上から順に、前方一致、後方一致、部分一致の表記となります。
こちらの右辺にフィールドを指定することもできますが、フィールドを指定する場合、以下のように〝&〟を組み合わせて表記する必要があるため、注意が必要です。
[フィールドA] Like [フィールドB] & “*”
[フィールドA] Like “*” & [フィールドB]
[フィールドA] Like “*” & [フィールドB] & “*”
不一致
不一致を表記する場合は条件式に完全一致を記載し、偽の場合で制御するのが一般的だとは思いますが、ここではあえて条件式に不一致を指定する場合の表記を紹介します。
[フィールドA] <> “一致”
このように、不一致を表記させるためには<>を用います。
もちろん、右辺にフィールドを指定することもでき、それは以下のようになります。
[フィールドA] <> [フィールドB]
部分不一致
部分不一致(○○を含まない)を表記するには以下のようになります。
[フィールドA] Not Like “一致*”
[フィールドA] Not Like “*一致”
[フィールドA] Not Like “*一致*”
上から順に前方不一致・後方不一致・不一致です。
日本語で表記すると、〝一致で始まらない〟〝一致で終わらない〟〝一致を含まない〟となります。
こちらの右辺をフィールドに置き換えた場合は、以下のように表記します。
[フィールドA] Not Like [フィールドB] & “*”
[フィールドA] Not Like “*” & [フィールドB]
[フィールドA] Not Like “*” & [フィールドB] & “*”
数値・日付時刻
完全一致
完全一致を表記する場合は一番分かりやすく以下のように指定すると良いです。
[フィールドA] = 100
[フィールドA] = #2020/12/1#
[フィールドA] = [フィールドB]
条件式の右辺には、数値あるいは日付を直接指定する場合と、別のフィールドを指定する場合とどちらも指定することができます。
なお、数値の場合は上記のように数値だけを入力すれば良いですが、日付の場合は##で囲む必要があります。
大小
大小を表記する場合は、以下のように指定することで表記することが可能です。
[フィールドA] > 100
[フィールドA] > #2020/12/1#
[フィールドA] > [フィールドB]
条件式の右辺には、数値あるいは日付を直接指定する場合と、別のフィールドを指定する場合とどちらも指定することができます。
上記は左辺の方が右辺よりも大きい場合(日付の場合は左辺の方が右辺よりも後日の場合)を例として挙げました。
大小比較の算術演算子は他に〝>=〟〝<〟〝<=〟も使用することが可能です。
不一致
不一致を表記するには、以下のように指定することが可能です。
[フィールドA] <> 100
[フィールドA] <> #2020/12/1#
[フィールドA] <> [フィールドB]
条件式の右辺には、数値あるいは日付を直接指定する場合と、別のフィールドを指定する場合とどちらも指定することができます。
まとめ
今回は、IIF関数の中で使える条件式を紹介しました。
IIF関数の条件については、もっと複雑に指定することも可能ですが、それはまたの機会に。
まずは、条件式の使い方を覚えていきましょう。
コメント