Power Queryをもっと使いこなす!詳細エディターのやさしい&実践的ガイド

Power Query

あの〜…この「詳細エディター」?ってやつ?見た目がなんか…プログラミングっぽくてコワイですぅ…何書いたらいいのか全然分からないんですけど…

ああ、それね。最初はちょっと戸惑うかもだけど、慣れたらめっちゃ使いやすいよ。基本の書き方さえ覚えちゃえば大丈夫だから、一緒にやってみよっか!

Power Query(パワークエリ)って便利だけど「あとちょっとこんなことができたら…」って思うこと、ありませんか?

たとえば… 「このステップ、まとめて書けたら簡単なのに」とか、 「自動でいい感じに処理されてるけど、中で何やってるのか気になる」とか。

そんなときに大活躍するのが「詳細エディター」です。 見た目はちょっと “開発者向け” っぽくて身構えちゃうかもしれませんが、コツさえつかめば、Power Queryがグッと手になじむようになります。

この記事では、Power Queryの詳細エディターってそもそも何?というところから、 実際にどんなふうに使えばいいのか、わかりやすく紹介していきます。

Power Queryの基本はOK、もう少しいろいろやってみたい、という方にオススメです!

クエリの設定ステップと詳細エディターの関係

Power Queryでなにか操作すると、右側に出てくる「クエリの設定」ウィンドウの「適用したステップ」にどんどん追加されていきますよね。

たとえば、

  • 列を削除したり
  • データ型を変更したり
  • 行や列の並びを変えたり
  • フィルターをかけたり

…といった作業、全部が“ステップ”として記録されます。

このひとつひとつのステップが「詳細エディター」で見ると、ぜんぶコードの形で書かれてるんです。つまり、「適用したステップ」=「詳細エディターで自動生成されたコード」と言ってもOK。裏側で何が行われているかがわかると、Power Queryの理解がぐっと深まりますよ!

詳細エディターで見ると、こんな感じ!

詳細エディターで先ほどのステップを見てみます。
「ホーム」タブ→「詳細エディター」を選択すると詳細エディターが起動します。

詳細エディターはこんな感じになっています。

let
    ソース = Csv.Document(File.Contents("C:\データ\テストデータ_曜日バラつき有.csv"),[Delimiter=",", Columns=8, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    昇格されたヘッダー数 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),
    変更された型 = Table.TransformColumnTypes(昇格されたヘッダー数,{{"日付", type date}, {"単価", type number}, {"数量", type number}, {"売上", type number}}),
    追加されたカスタム = Table.AddColumn(変更された型, "カスタム", each Date.DayOfWeekName([日付])),
    並べ替えられた行 = Table.Sort(追加されたカスタム,{{"日付", Order.Ascending}, {"曜日", Order.Ascending}, {"担当者名", Order.Ascending}, {"取引先", Order.Ascending}, {"商品", Order.Ascending}}),
    並べ替えられた列 = Table.ReorderColumns(並べ替えられた行,{"日付", "カスタム", "曜日", "担当者名", "取引先", "商品", "単価", "数量", "売上"}),
    #"名前が変更された列 " = Table.RenameColumns(並べ替えられた列,{{"曜日", "曜日ナンバー"}, {"カスタム", "曜日"}}),
    フィルターされた行 = Table.SelectRows(#"名前が変更された列 ", each ([取引先] <> "有限会社ピコ" and [取引先] <> "株式会社トポ" and [取引先] <> "株式会社ペン") and ([商品] <> "オレンジ" and [商品] <> "スイカ" and [商品] <> "バナナ"))
in
    フィルターされた行

ここにずらりと並んでいるのが、 「クエリの設定」ウィンドウの「適用したステップ」に並んでいた操作をM言語(Power Query専用の言語)で書き起こしたものなんです。

ステップ表示の違いと、それぞれの強み
表示方法特徴向いている場面
クエリの設定ウィンドウクリック操作で手軽に編集できる基本操作の確認やちょっとした修正に
詳細エディターまとめて確認・編集できる
コピペ可能
ステップの整理、カスタマイズ、複雑な処理をするときに

それぞれの良さがあるので、状況に応じて使い分けるのがおすすめです。

詳細エディターの基本ルール

Power Queryの詳細エディター、なんだか難しそうに見えますが、 基本の書き方さえつかめば、あとは応用でどうにかなります。

まずは、このカタチを覚えておけばOK!

let
    ステップ名1 = 処理1,
    ステップ名2 = 処理2,
    最終ステップ名 = 処理3
in
    最終ステップ名
ポイントはここ!
  • let で始めて、処理を順番に定義
  • in で最後に出力するステップを指定
  • 各ステップは「,(カンマ)」で区切る(最後だけカンマなしでOK)
  • ステップ名は分かりやすい名前に変更できる
  • スペースを含む名前は #” 〜 ” で囲う(例:#”ステップ名 1″)

各ステップの中では、前のステップ名をそのまま使って処理を引き継いでいきます。

新しい列 = Table.AddColumn(前のステップ名, "列名", each [列1] + [列2])
コメントも書ける!

詳細エディターではコメント行も追加できます。

1行コメント は // で書き始めます。

//単一行のコメント
新しい列 = Table.AddColumn(前のステップ名, "列名", each [列1] + [列2])

複数行コメントは /* ~ */ のスタイルで。

/* 複数行のコメントは
このような書き方です */
新しい列 = Table.AddColumn(前のステップ名, "列名", each [列1] + [列2])

カスタマイズしたり、共有したりするときにコメントってけっこう便利ですよね。

よくあるつまずきポイント
ステップ名の重複はNG!

同じ名前のステップを2回使っちゃうと、エラーになります。 ステップ名は毎回ユニーク(かぶらない)名前にしておくのがコツです。

前のステップをしっかり指定しよう

Power Queryは、前のステップの内容を受け取って次のステップを作っています。 順番通りにステップをつなげないと、思ったとおりに動きません。

処理の順番は大事です!

in の指定ミスに注意

in のあとの出力するステップ名を間違えると、画面に表示される結果がおかしくなります。 最後のステップ名をしっかり確認しておきましょう。

カンマ(,)の付け忘れや付けすぎ

ステップを追加したり順番を変えたりしたときにありがちなミスがこれ。
「,」を書き忘れたり重複するとエラーになります。

最後のステップには付けない!

うっかりミスに注意して!

最初の操作は「クエリの設定」から行い、微調整やまとめ作業は「詳細エディター」で。このスタイルなら、うっかりミスもグッと減らせます。

また、構文エラーにはならないけど結果が変…という“気づきにくいミス”もあるので、油断せずにチェックしていきましょう!

詳細エディターならではの便利な使い方

ステップをコピペして使いまわす

同じ処理を繰り返したいときや、別のクエリでも同じようなことをやりたいとき―― 詳細エディターなら、ステップをコピペするだけでサクッと再利用できます。

たとえば、「ここわかんないな…」っていう部分をコピーして、メールやチャットで詳しい人に聞いてみて、 修正されたコードをまたコピペで貼り戻す、なんて使い方もOK。

また、詳細エディターの画面で作業しづらいな〜と感じたら、 いったんメモ帳やお気に入りのテキストエディタに貼って編集 → 最後に戻す、ってのもアリです!

ステップの順番を手動で整理

「型変更はもうちょっと前に入れておきたい…」なんてとき、 詳細エディターならコードをちょっと書き換えるだけで順番の入れ替えができます。

ステップが増えてくると、「クエリの設定」ウインドウからドラッグして移動するのってちょっと面倒。 そんなときにこのやり方が重宝しますよ。

いらないステップをまとめて削除

「列の削除1」「列の削除2」…みたいな細かいステップがいっぱいあるとき、 「クエリの設定」ウィンドウだと1個ずつ削除しないといけなくて大変ですが、 詳細エディターならコードをまとめて一気に消せます!

慣れてくると、詳細エディターのほうが快適かも?

最初はちょっと構えるかもしれませんが、 使い方がわかってくると「こっちの方が編集がラク!」と感じることも。

カスタマイズ性も高くて、自由度もぐんと広がりますよ!

使いにくいところもある…!

M言語の書き方に慣れが必要

これがいちばんのハードルかもしれません。 関数やマクロにあまり触れていない方だと、最初はとっつきにくく感じるかも。

最初はスペルミスとかカッコの閉じ忘れとか、けっこうよくあるミスでエラーになります…!

エラーの内容が分かりにくい

エラーメッセージって、ちょっと不親切というか、慣れてないと「え、どこ直せばいいの?」ってなることがあります。いろいろ触っているうちに、気づいたらコードがぐちゃぐちゃに…なんて経験、あるあるです。

なので、こまめにステップ実行しながら確認したり、編集前に一度保存しておくと安心です。

まとめ

使えば使うほど手になじむ!

Power Queryの「詳細エディター」、最初はちょっと取っつきにくく感じるかもしれません。 コードっぽい画面を前にして「えっ、ムリかも…」と思うのも無理はないです。

でも、いざ少し触ってみると、「あれ?意外と使えるじゃん」ってなる瞬間がきっと来ます。

  • ステップを整理してコードを見やすくしたい
  • ほかのクエリにも使い回したい
  • 処理をスッキリまとめて管理したい

…というときには、詳細エディターの自由度が強い味方になります!

慣れてくると「クエリの設定」ウィンドウだけでは物足りなくなることも。 「ここだけ手で書き換えたい!」とか「まとめて修正したい!」という要望にもピタッとハマります。

日々の実務の中で、ちょっとずつ慣れていって、 Power Queryをもっともっと便利に使いこなしていきましょう!

詳細エディターって難しそうって思ってたけど、ステップ整理とかコード見えるのって便利なんですね…ちょっとずつ練習して、“自由自在にクエリ操作できる人”を目指しますっ!