IF
条件をチェックし、TRUE の場合は 1 つの値を返します。それ以外の場合は、2 つめの値を返します。
構文
IF(<logical_test>, <value_if_true>[, <value_if_false>])
パラメーター
用語 | 定義 |
---|---|
logical_test | TRUE または FALSE に評価できる値または式。 |
value_if_true | 論理テストが TRUE の場合に返される値。 |
value_if_false | (省略可能) 論理テストが FALSE の場合に返される値。 省略した場合は、空白が返されます。 |
戻り値
value_if_true、value_if_false、または空白のいずれかです。
解説
value_if_true と value_if_false が異なるデータ型の場合は、IF 関数からバリアント データ型が返される可能性がありますが、value_if_true と value_if_false の両方が数値データ型の場合は、関数は 1 つのデータ型を返そうとします。 後者の場合、IF 関数によって、両方の値に対応するようにデータ型が暗黙的に変換されます。
たとえば、式
IF(<condition>, TRUE(), 0)
からは TRUE または 0 が返されますが、式IF(<condition>, 1.0, 0)
からは value_if_false が整数データ型であっても小数値のみが返されます。 暗黙的なデータ型変換の詳細については、「データ型」を参照してください。条件式に関係なく分岐式を実行するには、代わりに IF.EAGER を使用します。
例
次の Product テーブルの計算列の定義では、IF 関数がさまざまな方法で使用され、各製品がその表示価格に基づいて分類されています。
最初の例では、List Price 列の値が 500 未満かどうかをテストしています。 この条件が true の場合は、Low の値が返されます。 value_if_false の値がないため、空白が返されます。
この記事の例は、Adventure Works DW 2020 Power BI Desktop のサンプル モデルで使用できます。 モデルを取得するには、「DAX サンプル モデル」を参照してください。
Price Group =
IF(
'Product'[List Price] < 500,
"Low"
)
2 つめの例では、同じテストが使用されていますが、今回は value_if_false の値が含まれています。 この数式では、各製品が Low または High として分類されています。
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
"High"
)
3 つめの例では、同じテストが使用されていますが、今回は IF 関数が入れ子にされ、追加テストが行われます。 この数式では、各製品が Low、Medium、または High として分類されています。
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
IF(
'Product'[List Price] < 1500,
"Medium",
"High"
)
)
ヒント
複数の IF 関数を入れ子にする必要がある場合は、SWITCH 関数を使用することをお勧めします。 この関数を使用すると、使用可能な値を 2 つ以上返す式を記述するための、より洗練された方法がもたらされます。