PR

Power Queryで列の追加を行う基本機能

Power Query基礎
スポンサーリンク

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エディターの「列の追加」タブを開き、コピーしたい列を選択して「重複する列」をクリックします。

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

スポンサーリンク
Power Queryの学習に役立つおすすめ本
初心者向け 初心者~中級者向け 中級者~上級者向け
プロフィール
たがみ

IT業界20年程度のシステムエンジニアです。
構築したシステムのデータ検証をExcelで実施することが多く、検証作業の効率化を模索しているときにPower Queryと出会いました。
Excel業務効率化の手助けになればと当ブログを解説しました。
今ではデータ分析でPower BIを活用しており、Power BI、Excelの両方でPower Queryを活用しています。

たがみをフォローする
Power Query基礎
たがみをフォローする
タイトルとURLをコピーしました