IF 関数 (DAX)

最初の引数として指定されている条件が満たされているかどうかを判定します。条件が TRUE の場合と条件が FALSE の場合で、それぞれ別々の値を返します。

構文

IF(logical_test>,<value_if_true>, value_if_false)

パラメーター

項目

定義

logical_test

TRUE または FALSE として評価できる任意の値または式。

value_if_true

論理テストが TRUE の場合に返す値。省略した場合、TRUE が返されます。

value_if_false

論理テストが FALSE の場合に返す値。省略した場合、FALSE が返されます。

戻り値

式で返すことができる任意の型の値。

説明

value_if_true または value_if_false の値を省略すると、IF では空の文字列値 ("") として処理されます。

式で参照する値が列の場合、IF は現在の行に対応する値を返します。

IF 関数は、1 つの列内では単一のデータ型を返そうとします。このため、value_if_true および value_if_false によって返される値のデータ型が異なる場合、IF 関数によってデータ型が暗黙的に変換され、列内の両方の値の型が同一のものにされます。たとえば、数式 IF(<condition>,TRUE(),0) は 1 と 0 で構成される列を返すため結果の合計を計算できますが、数式 IF(<condition>,TRUE(),FALSE()) は論理値のみを返します。暗黙的なデータ型変換の詳細については、「PowerPivot ブックでサポートされるデータ型」を参照してください。

使用例

次の例では、入れ子になった IF 関数を使用して、Adventure Works DW2008R2 のテーブル FactCallCenter 内の列 Calls を評価します。問い合わせの件数が 200 より少ない場合は low、200 以上で 300 より少ない場合は medium、これ以外の値の場合は high というラベルが割り当てられます。

=IF([Calls]<200,"low",IF([Calls]<300,"medium","high"))

次の例では、Adventure Works DW2008R2 のテーブル ProspectiveBuyer 内の列を使用して、カリフォルニア内で潜在顧客が存在する都市の一覧を取得します。この一覧は既婚者または子供と同居している人を対象とするキャンペーンの計画に使用することを予定しているため、IF 関数の条件では [MaritalStatus] 列と [NumberChildrenAtHome] 列の値を確認します。どちらかの条件が満たされ、その顧客がカリフォルニア州在住の場合に、都市名が出力されます。 それ以外の場合は、空の文字列が出力されます。 

=IF([StateProvinceCode]= "CA" && ([MaritalStatus] = "M" || [NumberChildrenAtHome] >1),[City])

かっこを使用して、AND (&&) 演算子および OR (||) 演算子を実行する順序を制御しています。また、value_if_false の値が指定されていないことにも注意してください。このため、関数は既定値の空の文字列を返します。