実務で使えるPower Query小技・テクニック | 数式バーでステップを編集する

Excel VBA Power Query M Formula Language
スポンサーリンク
スポンサーリンク

数式バーでステップを編集するとは何か

Power Queryの「数式バー」は、選択中のステップ1つ分のMコードをピンポイントで編集できる場所です。 詳細エディターが「クエリ全体」を扱う作業机だとしたら、数式バーは「今のステップだけを手直しするための小さな工具箱」のようなものです。

実務では、

  • 自動生成されたステップの条件を少し変えたい
  • 型変換の設定を微調整したい
  • カスタム列の式を直接書き換えたい といった「ちょっと直したい」が頻繁に発生します。 そのときに、毎回詳細エディターを開くのではなく、数式バーでサッと編集できるかどうかが、作業効率と保守性に大きく影響します。

ここから、数式バーでステップを編集する考え方を、初心者向けにステップバイステップで噛み砕いて説明していきます。

数式バーに表示されるものを理解する

選択中のステップ1つ分のMコードが出てくる

クエリのステップ一覧で、あるステップをクリックすると、 画面上部の数式バーに、そのステップのMコードが表示されます。

例:フィルター行ステップ

Table.SelectRows(変更された型, each [金額] > 1000)
Power Query

例:型変換ステップ

Table.TransformColumnTypes(ソース, {{"金額", type number}})
Power Query

例:カスタム列ステップ

Table.AddColumn(変更された型, "消費税額", each [金額] * 0.1, type number)
Power Query

ここで重要なのは、

  • 数式バーには「そのステップ1つ分の処理」だけが表示される
  • let ~ in 全体ではなく、「右辺の式」だけを編集するイメージ
  • ステップ名や前後のステップは、数式バーからは直接見えない

という点です。

数式バーは「このステップの中身だけをいじる場所」だと理解していただくとよいです。

数式バーで変えられるもの・変えられないもの

数式バーで変えられるのは、基本的に「式の中身」です。

  • 関数名:Table.SelectRowsTable.Sort など
  • 引数:参照元ステップ名、列名、条件式、型指定など
  • each の中身:each [金額] > 1000 の条件部分など

一方で、

  • ステップ名そのもの
  • let ~ in の構造
  • 他のステップのコード

は、数式バーからは直接変更できません。

「このステップの処理内容を微調整する」のが数式バー、「クエリ全体の構造をいじる」のが詳細エディターという役割分担をイメージしておくと、使い分けがしやすくなります。

ステップバイステップで数式バー編集に慣れる

ステップ1:まずは“読む”ことから始める

最初は、数式バーを「編集する場所」ではなく「読む場所」として使うのがおすすめです。

ステップ一覧で、

  • 変更された型
  • フィルター行
  • 並べ替え済みの行

などを順番にクリックし、数式バーに出てくる式を眺めてみます。

例:フィルター行ステップ

Table.SelectRows(変更された型, each [金額] > 1000)
Power Query

ここから、

  • このステップは Table.SelectRows を使っている
  • 参照元は 変更された型
  • 条件は each [金額] > 1000

という情報が読み取れます。

「このステップは何をしているのか」を数式バーから読み取る癖をつけることが、編集の第一歩になります。

ステップ2:条件やパラメータを少しだけ変えてみる

次に、数式バーで「小さな変更」をしてみます。

例:フィルタ条件を > 1000 から >= 1000 に変える

元の式:

Table.SelectRows(変更された型, each [金額] > 1000)
Power Query

数式バーで、>>= に書き換えます。

Table.SelectRows(変更された型, each [金額] >= 1000)
Power Query

Enterキーを押すと、ステップが更新され、プレビューも変わります。

このように、

  • 関数はそのまま
  • 参照元ステップ名もそのまま
  • 条件式だけを変更

という「部分的な修正」に、数式バーは非常に向いています。

「GUIで作ったステップを、数式バーで少し賢くする」という感覚で使っていくと、自然にMコードへの理解が深まります。

ステップ3:カスタム列の式を直接編集する

カスタム列ステップは、数式バー編集の練習に最適です。

例:消費税額列

元の式:

Table.AddColumn(変更された型, "消費税額", each [金額] * 0.1, type number)
Power Query

ここで、税率を0.1から0.08に変えたいとします。

数式バーで、0.10.08 に書き換えます。

Table.AddColumn(変更された型, "消費税額", each [金額] * 0.08, type number)
Power Query

さらに、null対応を追加したい場合は、each の中身を少し拡張します。

Table.AddColumn(
    変更された型,
    "消費税額",
    each if [金額] = null then null else [金額] * 0.08,
    type number
)
Power Query

このように、カスタム列のロジックを数式バーで直接書き換えることで、「行ごとの計算・判定」をコードとして育てていくことができます。

実務でよく使う「数式バー編集」のパターン

フィルタ条件の微調整

例:金額が1000より大きい → 1000以上

Table.SelectRows(変更された型, each [金額] >= 1000)
Power Query

例:金額が正の行だけ → nullも除外

Table.SelectRows(変更された型, each [金額] <> null and [金額] > 0)
Power Query

並べ替え条件の変更

例:金額で昇順 → 顧客コード+金額で並べ替え

Table.Sort(
    フィルター行,
    {
        {"顧客コード", Order.Ascending},
        {"金額", Order.Descending}
    }
)
Power Query

型変換の追加・修正

例:金額だけ数値 → 他の列も型を明示

Table.TransformColumnTypes(
    ソース,
    {
        {"顧客コード", type text},
        {"顧客名", type text},
        {"金額", type number},
        {"売上日", type date}
    }
)
Power Query

数式バーで、型変換のリストを増やしたり、型を修正したりできます。

カスタム列のロジック強化

例:有効行フラグを追加

Table.AddColumn(
    変更された型,
    "有効行",
    each [顧客コード] <> null and [顧客コード] <> "" and [金額] <> null and [金額] > 0,
    type logical
)
Power Query

数式バーで、条件式を直接編集しながら、 「この行が有効かどうか」をコードとして明示することができます。

数式バー編集で気をつけるべき重要ポイント

1. 参照元ステップ名を間違えない

数式バーの式の最初の引数には、たいてい「前のステップ名」が入っています。

Table.SelectRows(変更された型, each [金額] > 1000)
Power Query

ここで、うっかり 変更された型 を別の名前に変えてしまうと、 そのステップが存在しない場合はエラーになります。

  • 参照元ステップ名は、基本的にGUIが自動で入れてくれたものをそのまま使う
  • 名前を変えたい場合は、詳細エディターで全体の依存関係を見ながら変更する

という使い分けを意識すると安全です。

数式バーでは「中身だけをいじる」、名前や構造は詳細エディターで扱う、という線引きが大事です。

2. 型とnullを意識して式を変える

数式バーで条件や計算式を変えるときほど、

  • その列がどの型か
  • null が来たときどうなるか

を意識する必要があります。

例:[金額] * 0.1 に変更を加えるとき

  • 金額が text 型のままだと、数値計算でエラーになる
  • null の行があると、計算でエラーになる

数式バーで式を変える前に、

  • 型変換ステップ(Table.TransformColumnTypes)が正しく設定されているか
  • null をどう扱うか(無視・0扱い・nullのままなど)

を頭の中で確認しておくと、静かなバグを防ぎやすくなります。

3. セキュリティ・品質に関わる条件は慎重に編集する

数式バーで、権限チェックや有効行判定などの条件を変えるときは、特に慎重さが必要です。

悪い例:条件を緩めてしまう

// 元
each [Role] = "Admin" and [IsActive] = true

// 変更後(意図せず条件が緩くなっている)
each [Role] = "Admin"
Power Query

このような変更は、

  • 非アクティブな管理者も許可対象になってしまう
  • セキュリティ上の前提が崩れる

という重大な影響を持ちます。

セキュリティ・品質に関わる条件を数式バーで編集するときは、「何を緩めて何を厳しくしているのか」を必ず言葉で確認してから変更することを強くおすすめします。

数式バー編集を味方にするための考え方

「画面操作で作ったものを、コードで整える」

数式バーは、

  • GUIで作ったステップを
  • その場で少しだけ賢くする

ためのツールです。

  • フィルタ条件を正確にする
  • 型変換を明示的にする
  • カスタム列のロジックを強化する

といった「整える」作業を、数式バーでこまめに行うことで、 クエリ全体の品質が自然と上がっていきます。

「詳細エディターと数式バーを使い分ける」

  • 数式バー
    • 1ステップの中身を編集
    • 条件・計算式・型指定の微調整
    • カスタム列のロジック強化
  • 詳細エディター
    • クエリ全体の構造を設計
    • ステップの追加・削除・並び替え
    • 関数化・テンプレート化・再利用

このように役割を分けて考えると、 「どちらを使えばいいか」で迷いにくくなります。

数式バーは“今このステップを直すためのペン”、詳細エディターは“クエリ全体を設計するための図面”だとイメージしていただくと、しっくりくるはずです。

まとめ:数式バーは“ステップを育てるための小さな編集窓”

「数式バーでステップを編集する」というのは、 単にコードをいじるというより、

「GUIで作られたステップ1つ1つを、Mコードとして少しずつ育てていく」

という行為に近いです。

それによって、

  • 条件や計算式が明確になる
  • 型やnullの扱いが意図通りになる
  • セキュリティ・品質のルールがコードとして刻まれる

という大きなメリットが得られます。

ぜひ、

  • まずは数式バーで「読む」ことから始める
  • 小さな条件変更やカスタム列の修正で慣れる
  • 型・null・セキュリティ前提を意識して編集する
  • 詳細エディターと役割を分けて使う

という流れで、数式バーを「ただの表示欄」から、 実務のロジックと安全性を支えるための頼れる編集窓として活用していっていただきたいです。

タイトルとURLをコピーしました