Power Query ですぐに使用できる列よりも新しい列を追加する柔軟性が必要な場合は、Power Query M 数式言語を使用して独自のカスタム列を作成できます。
次の一連の列を含むテーブルがあるとします。
[単位]、[単価]、[割引] 列を使用して、次の 2 つの新しい列を作成します。
- 割引前の売上合計: 単位 列と 単価 列を乗算して計算されます。
- 割引後の販売の合計: 割引 前の販売合計 列に純パーセント値 (1 から割引額を差し引いた値) を乗算して計算されます。
目標は、割引前の売上合計と割引後の売上合計を含む新しい列を含むテーブルを作成することです。
カスタム列を作成する
[ 列の追加 ] タブで、[ カスタム列] を選択します。
[ カスタム列 ] ダイアログが表示されます。 このダイアログボックスでは、列を作成する数式を定義します。
[カスタム列] ダイアログには次のものが含まれます。
新しい列名 ボックスにカスタム列の名前を最初に入力します。 この列の名前は、変更できます。
新しい列のデータ型を選択できるドロップダウン メニュー。
[データ型] の選択の右側にある [使用可能な列] リスト。
Power Query M 数式を入力できるカスタム列数式ボックス。
新しいカスタム列を追加するには、[使用可能な列] ボックスの一覧から 列 を選択します。 次に、リストの下にある [ 列の挿入 ] ボタンを選択して、カスタム列の数式に追加します。 一覧で列を選択して、列を追加することもできます。 または、カスタム列の数式で Power Query M 数式言語を使用して、独自の 数式を記述することもできます。
注
カスタム列の作成時に構文エラーが発生すると、黄色の警告アイコンと、エラー メッセージと理由が表示されます。
[割引前の合計販売数] 列の追加
[割引前の合計販売額] 列を作成するために使用できる数式が[Units] * [Unit Price]
。 [ データ型] で、[ 通貨 ] データ型を選択します。
その操作の結果、 新しい [割引前の売上合計] 列がテーブルに追加されます。
注
Power Query Desktop を使用している場合、[ データ型 ] フィールドは [カスタム] 列では使用できません。 つまり、列を作成した後、カスタム列のデータ型を定義する必要があります。 詳細: Power Query のデータ型
[割引後の売上合計] 列の追加
割引が[Total Sale before Discount]* (1-[Discount])
される前に合計販売額を作成するために使用できる数式。 この新しい列のデータ型を Currency に設定します。
その操作の結果、テーブルに新しい [割引後の売上合計] 列が追加されます。
既存のカスタム列を変更する
Power Query では、テーブルにカスタム列が追加され、[クエリ設定] の [適用されたステップ] リストに [追加されたカスタム ステップ] が追加されます。
カスタム列を変更するには、[適用されたステップ] の一覧で [追加されたカスタムステップ ] を選択します。
[ カスタム列 ] ダイアログ ボックスが、作成したカスタム列の数式と共に表示されます。
注
Power Query は、カスタム列に使用した数式に応じて、ステップの設定動作を変更して、よりシンプルでネイティブなエクスペリエンスを実現します。 この例では、 追加されたカスタム ステップの動作が標準のカスタム列ステップから 乗算 エクスペリエンスに変更されました。これは、そのステップの数式で 2 つの列の値が乗算されるだけなのでです。
Copilot を使用してカスタム列の数式を作成する (プレビュー)
注
このエクスペリエンスは、Copilot を適用する Power Query エクスペリエンスでのみ使用できます。
[ カスタム列の追加 ] ダイアログボックス内に、copilot アイコンを含む新しい入力テキストボックスが表示されます。 その中で、列のロジックに関してこのカスタム列で何を行うかを、独自の単語と言語で記述できます。
たとえば、複雑な条件付きロジックを導入するシナリオを考えてみましょう。 このロジックは独自の単語で記述でき、Copilot はカスタム列の数式を作成できます。
たとえば、 OrderID、 Quantity、 Category、 Total フィールドを含むテーブルの場合、次のようなプロンプトを渡すことができます。
if the Total order is more than 2000 and the Category is B, then provide a discount of 10%. If the total is more than 200 and the Category is A, then provide a discount of 25% but only if the Quantity is more than 10 otherwise just provide a 10% discount.
このプロンプトを送信すると、Copilot によって処理され、カスタム列の数式が変更され、必要に応じて名前とデータ型が追加されます。
カスタム列を確認し、必要な変更を加えることができます。
注
既存の数式を含むカスタム列ダイアログで送信されたプロンプトは、既存の数式が Copilot からの提案に完全に置き換えられる可能性があります。
関連コンテンツ
- Power Query エディターに指定した例に基づいて列を作成するなど、他の方法でカスタム列を作成できます。 詳細情報: 例から列を追加する
- Power Query M のリファレンス情報については、「 Power Query M 関数リファレンス」を参照してください。