Power Queryエディター上で任意の数式を追加する方法(カスタム列)[Power Query(パワークエリ)基礎]
AさんAさん

表にある数値の列を使って、「単価×数量×(1-割引率)」みたいな計算したいのですが、パワークエリでもできますか?

森田森田

可能です!

その場合、Power Queryエディターの「カスタム列」で任意の数式をセットできます!

具体的な使い方について解説していきますね。

はじめに

本題に入る前に、この記事がおすすめな方を挙げてみます。

  • 元データの表の数値列を元に任意の数式を設定したい方
  • データ整形・加工の工程が複数あり、かつその作業が定期的に発生する方
  • Power Query(パワークエリ)の使い方を習得したい方

前提条件

この記事のテクニックを使うためには、以下の条件を満たす必要があります。

  • ExcelのバージョンはExcel2010以降(Microsoft365含む)が必須
  • Excel2010/2013ユーザーの場合、事前にMicrosoft社公式HPよりPower Query(パワークエリ)のダウンロードが必要(Excel2016以降は標準機能)
  • Power Query(パワークエリ)の概要を理解していること
    →まず、以下の記事で概要を把握することをおすすめします。

標準的なコマンド以外の計算や処理をしたい場合に「カスタム列」が有効

Power Queryエディターには、四則演算等の標準コマンドが複数用意されています。

ただし、同じ四則演算でも「単価×数量×(1-割引率)」のようなカッコを含む数式や複数の計算を1つの数式で行いたい場合、複数手順が必要でやや面倒です。

この場合、「カスタム列」というコマンドを活用しましょう。

このコマンドを活用することで、ワークシート上と同じように任意の数式で計算や処理を行った列を追加することが可能となります。

Power Query(パワークエリ)で複数の作業を行う中でこうした計算・処理も行えると非常に便利ですよ!

では、Power Query(パワークエリ)でのカスタム列の追加手順を確認していきましょう。

Power Query(パワークエリ)でのカスタム列の追加手順

今回の前提として、カスタム列の計算を行う対象テーブルはブック内にあり、事前にPower Queryエディターに取り込んでいる状態からスタートするとします。(ブック内のデータ取得について復習したい方は下記記事を参照)

今回はカスタム列で「単価×数量×(1-割引率)を計算してみましょう。

カスタム列の追加は以下の2ステップとなります。

STEP1】リボン「列の追加」タブから「カスタム列」をクリック

まずはリボンの「列の追加」タブをクリック(①)し、「カスタム列」をクリック(②)します。

STEP2】「カスタム列」ダイアログへ任意の数式を入力

「カスタム列」ダイアログが起動します。

追加される列に任意の列名を入力(③)し、任意の数式を入力(④)してください。

今回は手順③では「割引後金額」、手順④では「=[単価]*[数量]*(1-[割引率])」という数式にしています。

ダイアログ左下で「構文エラーが検出されませんでした。」となっていることが確認できたら、OK」をクリック(⑤)して完了です。

手順④ではダイアログ右側の「使用できる列」から任意の列を選択し、「<<挿入」をクリックすることで数式に任意の列名を挿入できます。

カスタム列の数式上で用いる四則演算の記号はワークシート上と共通です。(加算:+、減算:-、乗算:*、除算:/

カスタム列で設定した数式通りの計算や処理が確認できたらOK

「プレビュー」ウィンドウを見ると、無事表の右端の「割引後金額」列で「単価×数量×(1-割引率)」の計算結果を追加できました!

ちなみに、カスタム列のデータ型は「すべて」になっているため、その他の必要な処理と併せて最適なデータ型への変更を行ってください。

すべて終えたら、任意の方法でデータを出力しましょう。

【参考】カスタム列の数式で使用する主な3要素

カスタム列の数式では主に次の3つの要素を用いることになります。

  1. 演算子
  2. M関数
  3. if

1つ目の演算子は、数式で用いる記号のことだと理解してもらえればOKです。

こちらはワークシートと共通なので、元々ワークシート上で数式を使っていれば、特に新たな知識は不要ですね。

ただし、カスタム列の数式はワークシート上の数式と異なり、計算・処理対象が「列」単位となる点だけご注意ください。(ワークシート上では基本的に「セル」が対象)

なお、演算子で良く使うものは、算術演算子(+-*/%)、比較演算子(=><>=<=<>)、文字列演算子(&)ですね。

詳細はMicrosoftサポートの記事をご参照ください。

2つ目のM関数は、「パワークエリ用の関数」だと思ってください。

ワークシート上の関数と基本的に別物ですね。(ごく一部、似たものもありますが)

こちらは使用頻度の高いものの詳細は別記事でまとめていく予定です。

なお、Microsoft Docsにて各関数の詳細を確認できます。

3つ目のif式は、ワークシート上のIF関数みたいなもの(VBAをご存じの方はif式・ifステートメントといった方が正確)と思ってください。

こちらも今後別記事にまとめる予定です。

【参考】カスタム列の内容を変更したい場合は

もし、カスタム列の内容をあとで変更したい場合は、「クエリの設定」ウィンドウの任意のステップをダブルクリック、もしくは歯車マークをクリックしましょう。

すると、「カスタム列」ダイアログが起動するため、任意の数式に修正の上、再度「OK」ボタンをクリックすれば良いですね。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_PowerQueryデータ整形_カスタム列.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ファイルを開いたら、「入れ替え」を行う前に、Power Queryエディターを起動させてくださいね。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリックしてください。

  1. リボン「データ」タブをクリック
  2. 「クエリと接続」をクリック
  3. 「売上明細」クエリをダブルクリック

ここまで準備ができたら、次の手順を実施してください。(今までの解説のまとめです)

  1. リボン「列の追加」タブをクリック
  2. 「カスタム列」をクリック
  3. 任意の列名を入力
    ※今回は「割引後金額」
  4. 任意の数式を入力
    ※今回は「=[単価]*[数量]*(1-[割引率])
  5. OK」をクリック

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

「カスタム列」はPower Query(パワークエリ)での応用の第一歩です。

ちょっと複雑なことも作業の一連の中で対応したい場合にうってつけなので、ぜひこの機会に触れてみましょう。

なお、Power Query(パワークエリ)の各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。


ご参考になれば幸いですm(_ _)m

森田森田

カスタム列はこれからパワークエリで応用範囲を広げるための「入り口」のような機能です。

最初は四則演算等の簡単なものから始め、少しずつM関数にチャレンジするといった流れが良いと思います。

ぜひ、カスタム列を試してみてくださいね。