次の方法で共有


SWITCH

適用対象:計算列計算テーブルMeasureビジュアル計算

複数の結果式のいずれかを返 valuesand のリストに対して式を評価します。 この関数を使用すると、複数の入れ子になった IFstatementsを回避できます。

構文

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])

パラメーター

用語 定義
expression 1 つのスカラー value を返す任意の DAX 式。式は (行/コンテキストごとに) 複数回評価されます。
value expressionの結果と一致する定数 value。
result 評価するスカラー式は、対応する valueと一致 expression 結果 if します。
else expression の結果 if 評価されるスカラー式は、どの value 引数にも一致しません。

value を返す

valueとの一致がある If は、対応する result からスカラー value が返されます。 valueとの一致がない If は、else からの value が返されます。 values 一致 andelse の Ifnone が指定されていない場合は、BLANK が返されます。

解説

  • 評価する expression は、式 valueor 定数にすることができます。 この関数の一般的な用途は、first パラメーターを TRUEに設定することです。 以下の例を参照してください。
  • else 式 andAllresult 式は、同じデータ型である必要があります。
  • 条件の順序は重要です。 1 つの value が一致するとすぐに、対応する result が返 and、後続の他の values は評価されません。 制限の厳しい valuesの前に、評価する最も制限の厳しい values が指定されていることを確認します。 以下の例を参照してください。

SWITCH の一般的な用途は、expression と定数 valuesを比較することです。 次の例では、month 名の計算列を作成します。

= SWITCH (
         [Month Number Of Year],
         1, "January",
         2, "February",
         3, "March",
         4, "April",
         5, "May",
         6, "June",
         7, "July",
         8, "August",
         9, "September",
         10, "October",
         11, "November",
         12, "December",
         "Unknown month number"
        )

SWITCH のもう 1 つの一般的な用途は、複数の入れ子になった IFstatementsを replace することです。 これは、次の例に示すように、式を TRUEに設定することで実現されます。この例では、製品の並べ替えポイント and 安全在庫レベルを比較して、在庫切れの潜在的なリスクを特定します。

= SWITCH (
        TRUE,
        [Reorder Point] > [Safety Stock Level], "Good: Safety stock level exceeded",
        [Reorder Point] = [Safety Stock Level], "Minimal: Safety stock level met",
        [Reorder Point] < [Safety Stock Level], "At risk: Safety stock level not met",
        ISBLANK ( [Reorder Point] ), "Incomplete: Reorder point not set",
        ISBLANK ( [Safety Stock Level] ), "Incomplete: Safety stock level not set",
        "Unknown"
        )

values の順序が重要です。 次の例では、firstvalue が secondよりも制限が緩いため、secondresult は返されません。 この例の結果は常に AorCされますが、Bされることはありません。

= SWITCH (
         TRUE,
         Product[Standard Cost] < 100, "A",
         Product[Standard Cost] < 10, "B",
         "C"
         )

次のステートメントは、result 引数のデータ型が異なるため、error を返します。 all result and else 引数のデータ型は同じである必要があることに注意してください。

= SWITCH (
        [Class],
        "L", "Large",
        "H", 0.1
        )