IF.EAGER
条件をチェックし、TRUE の場合は 1 つの値を返します。それ以外の場合は、2 つめの値を返します。 ここでは、条件式に関係なく、常に分岐式を実行する eager 実行プランが使用されます。
構文
IF.EAGER(<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.EAGER 関数からバリアント データ型が返される可能性がありますが、value_if_true と value_if_false の両方が数値データ型の場合、関数は 1 つのデータ型を返そうとします。 後者の場合、IF.EAGER 関数によって、両方の値に対応するようにデータ型が暗黙的に変換されます。
たとえば、式
IF.EAGER(<condition>, TRUE(), 0)
からは TRUE または 0 が返されますが、式IF.EAGER(<condition>, 1.0, 0)
からは value_if_false が整数データ型であっても小数値のみが返されます。 暗黙的なデータ型変換の詳細については、「データ型」を参照してください。IF.EAGER には、IF 関数と同じ関数の動作がありますが、実行プランの違いによってパフォーマンスが異なる場合があります。
IF.EAGER(<logical_test>, <value_if_true>, <value_if_false>)
には、次の DAX 式と同じ実行プランがあります。VAR _value_if_true = <value_if_true> VAR _value_if_false = <value_if_false> RETURN IF (<logical_test>, _value_if_true, _value_if_false)
注: 2 つの分岐式は、条件式に関係なく評価されます。
例
IF の例に関する記事を参照してください。