IIf関数 …式の真偽に応じて値を切り替える

[Access 2016/2013/2010/2007]

AccessのIIf関数の使い方を紹介します。

スポンサーリンク

書式

IIf(, 真の場合, 偽の場合)

が真(True)の場合は真の場合、偽(False)の場合は偽の場合を返します。条件によって値を切り替えたいときに使用します。

引数

引数 指定 説明
 expression 必須 評価対象の式を指定
真の場合 truepart 必須 が真(True)の場合に返す値を指定
偽の場合 falsepart 必須 が偽(False)の場合に返す値を指定

使用例

IIf([得点]>=70, "合格", "")

  • [得点]フィールドの値が70以上の場合、戻り値は「合格」
  • [得点]フィールドの値が70以上でない場合、戻り値は長さ0の文字列「""」

IIf([数量]>=10, Int([単価]*0.9), [単価])

  • [数量]フィールドの値が10以上の場合、戻り値は[単価]の1割引き
  • [数量]フィールドの値が10以上でない場合、戻り値は[単価]

IIf([割引券有], -1000, 0)

  • [割引券有]フィールドの値がTrueの場合、戻り値は-1000
  • [割引券有]フィールドの値がTrueでない場合、戻り値は0

実践例:70点以上を合格と判定する

[得点]フィールドの数値が70以上の場合に「合格」、それ以外に「不合格」と表示します。

判定: IIf([得点]>=70,"合格","不合格")

メモ

Null値に注意しよう

(1) 判定A: IIf([得点]>=70,"合格","不合格")
(2) 判定B: IIf([得点]<70,"不合格","合格")

(1)の[判定A]の式は70以上の場合に合格と判定し、(2)の[判定B]の式は70未満でない場合に合格と判定します。一見同じように感じますが、「70未満でない場合」にはNull値も含まれるので注意が必要です。[得点]フィールドが未入力(Null値)の場合、(2)の[判定B]では判定が「合格」となってしまいます。したがって、Null値を考慮するなら(1)の[判定A]の式を使用するのが賢明です。

スポンサーリンク

関連記事