Power Queryで列を追加する場合、いろんな機能があります。「列の追加」タブを開くと、いろんなボタンがあります。基本的な機能は、全般の中にある緑枠の機能を知ってれば良いと思います。

全部で6個のアイコンがあります。インデックス列、重複する列についても解説しますが、この中で以下3つを抑えておけば良いです。
- 例からの列
- カスタム列
- 条件列
「カスタム関数の呼び出し」は難しいので今回の説明からは省きます。
例からの列:自分が欲しい値から数式を自動生成
Power Queryで列を追加するときに、Excelのように数式を入力できます。初心者の場合は、どんな数式があるかわからず、戸惑うことがあります。
数式を使った結果のイメージがあるが、数式がわからない。そんなときは「例からの列」を使えば、自分が欲しい値(サンプル値)から数式を自動生成してくれます。
例えば、年月日の列から月だけを抜き出したい。_(アンダースコア)より左の文字を抜き出したい。といった場合に「例からの列」を使って数式を自動生成し、必要に応じて数式を修正できます。
「例からの列」をクリックする
Power Queryエディターの「列の追加」タブを開き、「例からの列」をクリックします。

▼をクリックすると、「すべての列から」と「選択範囲から」を選択可能ですが、この操作では「すべての列から」をクリックしたときと同じ結果になります。
特定の列「選択範囲から」を選ぶと、選択した列から数式を自動生成してくれるので、加工したい列が決まっているなら、「選択範囲から」でも良いでしょう。使い分けがわからない場合は、とりあえず「すべての列から」で良いと思います。
自分が欲しい値(サンプル値)を入力する
売上日の月だけを抜き出した列が欲しいとします。その場合1行目は「1」という値になります。そこで、サンプル値として、「1」を入力してみましょう。

数式の候補が一覧に出てきます。「売上日からの月」をクリックします。

サンプル値から、数式が自動作成された列ができる。
以下のように、数式が自動生成されます。OKをクリックします。

売上日の月を抜き出した列が追加されました。

カスタム列:数式を自分で入力
先ほどは「例からの列」でサンプル値から数式を生成しましたが、自分で数式を直接入力することもできます。
数式のことをM言語といいます。Excelライクで使えますが、関数名が全然違うため最初はとっつきにくいかもしれません。
例えば、ExcelのLEFT関数は「Text.Start」、RIGHT関数は「Text.End」になり、全然違います。MONTH関数だと「Date.Month」なので、近しい名前のものもあります。例として、Date.Monthを使って、年月日から月を抜き出してみます。
「カスタム列」をクリックする
Power Queryエディターの「列の追加」タブを開き、「カスタム列」をクリックします。

数式を入力する
「新しい列名」は必要に応じて列名を変更します。「カスタム列の数式」に「Date.Month(<任意の日付の列名>)」を入力します。

列が追加されます。

列の数式を修正する
「適用したステップ」の⚙️歯車のアイコンをクリックすると、数式を修正できます。

「カスタム列」のポップアップウィンドウが表示されます。

数式バーからも数式を修正可能です。

条件列:条件に応じて表示内容を変える
ExcelでIF文を使いますか?IF文を使うと条件に応じて表示内容を変えられます。
=IF(A1>=70, “合格”, “不合格”)
といった数式を書いて、試験の点数が70点以上なら合格、それ以外なら不合格といった判定ができます。
このExcelのIF文と同じことがPower Queryで可能です。
例として以下テーブルのデータから、試験の合否を表示する列を追加してみます。

「条件列」をクリックする
Power Queryエディターの「列の追加」タブを開き、「条件列」をクリックします。

条件を設定する
「新しい列名」は必要に応じて列名を変更します。「列名」の▼をクリックし、条件になる列「点数」を選択します。

「列名」の▼をクリックし、演算子を選択します。70点以上で合格としたいため、「次の値以上」を選択します。

条件の値に「70」を入力します。

「出力」に「合格」と入力します。「それ以外の場合」については、「不合格」と入力します。

列が追加されました。


条件を修正する
「適用したステップ」の⚙️歯車のアイコンをクリックすると、条件を修正できます。

「条件列の追加」のポップアップウィンドウが表示されます。

演算子について
今回、例として数字のデータ型を使ったため、「次の値以上」や「次の値以下」といった演算子が選択できました。これがテキストや日付のデータ型だったらどうなるでしょうか。
以下はデータ型がテキストの場合です。

以下はデータ型が日付の場合です。

このように、データ型によって使える演算子が変わってきます。
インデックス列:通し番号をつける
明細番号を自動採番したい、ソートした後でも元の並び順を保持しておきたい。
そんなときにインデックス列を使うと便利です。0から、もしくは1から通し番号をつけてくれます。
「インデックス列」をクリックする
Power Queryエディターの「列の追加」タブを開き、「インデックス列」をクリックします。

インデックス列が追加されました。

追加された数式
数式を見ると、
= Table.AddIndexColumn(変更された型, “インデックス”, 0, 1, Int64.Type)
となっています。
Table.AddIndexColumnの第3引数が0になっていますが、これは0から採番するという意味です。1に変更すると1から採番されます。

Table.AddIndexColumnの第4引数が1になっていますが、これは1ごとに加算するという意味です。2に変更すると2を加算した通し番号になります。

インデックス列追加時のオプション
インデックス列の▼をクリックすると、0から通し番号をつける、1から通し番号をつける、カスタムの3種類から選択できます。

重複する列:列をコピーする
あまり使うことはないかもしれませんが、列をコピーして全く同じ値を持つ列を追加できます。
Power Queryエディターの「列の追加」タブを開き、コピーしたい列を選択して「重複する列」をクリックします。

コピーされた列が追加されます。
