次の方法で共有


条件付き列を追加する

Power Query を使用すると、テーブル内の他の列に適用される 1 つ以上の条件に基づく値を持つ新しい列を作成できます。

[条件列] コマンドは、[列の追加] タブの [全般] グループにあります。

[列の追加] タブが開き、[条件列] オプションが強調されている Power Query リボンのスクリーンショット。

条件付き列の追加

この例では、次の図に示す表を使用します。

条件列を追加するときに使用するサンプル テーブルのスクリーンショット。

この表には、 CustomerGroup を提供するフィールドがあります。 また、階層 1 の価格、階層 2 の価格、階層 3価格フィールドでも、その顧客に適用できる価格が異なります。 この例では、CustomerGroup フィールドで見つかった値に基づいて、最終価格という名前の新しい列を作成することが目標です。 CustomerGroup フィールドの値が 1 の場合は、Tier 1 Price フィールドの値を使用します。それ以外の場合は、階層 3 価格の値を使用します。

この条件列を追加するには、[ 条件列] を選択します。 [ 条件列の追加 ] ダイアログ ボックスで、次のセクションを定義します。

  • 新しい列名: 新しい列の名前を定義します。 この例では、 Final Price という名前を使用します。
  • 条件句: 条件付き句を定義します。 句を追加する場合は、[句の 追加] を選択します。 各条件句は、ダイアログ ボックスに表示される順序 (上から下) でテストされます。 各句には、次の 4 つの部分があります。
    • 列名: ドロップダウン リストで、条件付きテストに使用する列を選択します。 この例では、[ CustomerGroup] を選択します。
    • 演算子: 条件テストのテストまたは演算子の種類を選択します。 この例では、 CustomerGroup 列の値は 1 に等しい必要があるため、[ 等しい] を選択します。
    • : 値を入力するか、条件付きテストに使用する列を選択します。 この例では、「1」と入力 します
    • 出力: テストが正の場合、ここに入力された値または選択した列が出力になります。 この例では、 CustomerGroup の値が 1 の場合、 出力 値は Tier 1 Price 列の値である必要があります。
  • Final Else 句: 上記のどの句も陽性のテストを生成しない場合、この操作の出力は、ここで手動で入力された値または列から取得された値として決定されます。 この場合、出力は Tier 3 Price 列の値です。

すべてのサンプル値が入力された [条件列の追加] ダイアログのスクリーンショット。

この操作の結果、階層 1 の価格列と階層 3 の価格列の値を含む新しい [最終 価格] 列が表示されます。

条件句の例で生成された Any データ型を含む [最終価格] 列を含むテーブルのスクリーンショット。

新しい条件付き列には、データ型が定義されていません。 Power Query のデータ型に関するページで説明されている手順に従って、この新しく作成された列の データ型を定義する新しい手順を追加できます。

複数の句の追加と整理

この例では、目標を変更しましょう。 新しい条件句は次のとおりです。

  • CustomerGroup 列の値が 1 の場合、出力Tier 1 Price 列の値です。
  • CustomerGroup 列の値が 2 の場合、出力Tier 2 Price 列の値です。
  • 前のテストのいずれも正でない場合、 出力階層 3 の価格 列の値です。

[最終価格] 列の値に対して 2 つの異なる条件句が定義された [条件列の追加] のスクリーンショット。

各句の末尾で、省略記号ボタン (...) を選択して、句を削除、上へ移動、または下に移動できます。

その操作の結果、価格レベル 1 の価格、階層 2 の価格、階層 3 の価格列の価格を含む最終価格列が表示されます。

複数の条件句によって生成された Any データ型を含む Final Price を含むテーブルのスクリーンショット。