もし
条件をチェックし、TRUE
場合は 1 つの値を返します。それ以外の場合は 2 番目の値を返します。
構文
IF(<logical_test>, <value_if_true>[, <value_if_false>])
パラメーター
用語 | 定義 |
---|---|
logical_test |
TRUE または FALSE に評価できる任意の値または式。 |
value_if_true |
論理テストが TRUE 場合に返される値。 |
value_if_false |
(省略可能)論理テストが FALSE 場合に返される値。 省略すると、BLANK が返されます。 |
戻り値
value_if_true
、value_if_false
、または BLANK
。
備考
if 関数は、
value_if_true
とvalue_if_false
が異なるデータ型の場合にバリアント 型のデータ型を返すことができますが、value_if_true
とvalue_if_false
の両方が数値データ型の場合、関数は 1 つのデータ型を返そうとします。 後者の場合、IF 関数は両方の値に対応するようにデータ型を暗黙的に変換します。たとえば、数式
IF(<condition>, TRUE(), 0)
はTRUE
または 0 を返しますが、value_if_false
が整数のデータ型であっても、IF(<condition>, 1.0, 0)
は 10 進数のみを返します。 暗黙的なデータ型変換の詳細については、「データ型の」を参照してください。条件式に関係なく分岐式を実行するには、IF を使用します。代わりに、EAGER。
例
次の Product テーブルの計算列定義では、さまざまな方法で IF 関数を使用して、表示価格に基づいて各製品を分類します。
最初の例では、定価 列の値が 500 未満かどうかをテストします。 この条件が true の場合、Low value_if_false
値がないため、BLANK が返されます。
この記事の例は、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 つ以上の可能な値を返す式を記述するよりエレガントな方法を提供します。