「ExcelのVLOOKUPやIF関数ならわかるけど、Power Queryだとどう書けばいいかわからない…」そんな悩みを抱えていませんか?

Power Query(パワークエリ)はExcel 2016以降に標準搭載されたデータ変換ツールで、2026年3月現在、Excel業務の効率化には欠かせない存在になっています。でも、使い慣れたExcel関数とはまったく書き方が違うので、最初は戸惑う人がとても多いんです。

この記事では、Excelでよく使う10個の関数がPower Queryではどう書けるのかを、対応表+具体例つきでわかりやすくまとめました。「Power Queryを使い始めたけど、関数の変換がわからない」という方はぜひブックマークしてください。

そもそもPower Queryの「M言語」って何?

Power Queryの裏側で動いているのがM言語(正式名称: Power Query Formula Language)というプログラミング言語です。普段はGUI(マウス操作)だけで使えるので意識しなくていいのですが、「カスタム列」を追加したり、ちょっと複雑な変換をしたいときにはM言語を直接書く必要が出てきます。

ざっくり言うと、Excelの数式バー=Excel関数を書く場所Power Queryの数式バー=M言語を書く場所と思ってください。

M言語にはExcel関数とは違ういくつかのルールがあります。

  • 大文字・小文字を区別する: Text.Start はOKだけど text.start はエラーになる
  • インデックスが0始まり: Excelは1文字目を「1」と数えるけど、M言語では「0」
  • 関数名が英語: Text.Start(LEFT相当)、Text.End(RIGHT相当)のように「カテゴリ.動作」の形式

この3つを覚えておくだけで、M言語への抵抗感がグッと減りますよ。

Excel関数→Power Query(M言語)変換早見表

まずは一覧表でサクッと確認しましょう。2026年3月時点のExcel(Microsoft 365 / Excel 2021以降)とPower Queryの対応です。

Excel関数Power Query(M言語)ひとことメモ
IFif 条件 then 値1 else 値2全部小文字で書く!
VLOOKUP「クエリのマージ」機能(左外部結合)関数ではなくGUI操作で代替
LEFTText.Start(文字列, 文字数)先頭からN文字を取り出す
RIGHTText.End(文字列, 文字数)末尾からN文字を取り出す
MIDText.Middle(文字列, 開始位置, 文字数)開始位置は0始まりに注意!
LENText.Length(文字列)文字数を返す
TRIMText.Trim(文字列)前後の空白を除去
CONCATENATE / &文字列1 & 文字列2 または Text.Combine&演算子がそのまま使える
UPPER / LOWERText.Upper(文字列) / Text.Lower(文字列)大文字・小文字変換
SUBSTITUTEText.Replace(文字列, 旧, 新)文字列の置換

この表をそのままデスクの横に貼っておくと、Power Queryを使うときにサッと確認できて便利です。

特に戸惑う3つの関数を詳しく解説

1. IF関数 → if then else

ExcelのIF関数はいちばん使う関数のひとつですよね。Power Queryでもほぼ同じ感覚で使えるのですが、書き方のルールが少し違います

Excelの場合:

=IF(A2>=100, "合格", "不合格")

Power Queryの場合(カスタム列の数式):

if [点数] >= 100 then "合格" else "不合格"

ポイントは3つあります。

  • ifthenelseすべて小文字で書く(大文字だとエラー)
  • カッコで囲まない(ExcelのIF()とは構文が違う)
  • 列名は[列名]のように角カッコで囲む

ネストする場合は if 条件1 then 値1 else if 条件2 then 値2 else 値3 のように書きます。Excelの IF(IF()) よりも読みやすいと感じる人が多いですよ。

2. VLOOKUP → クエリのマージ

ここがいちばん戸惑うポイントです。Power QueryにはVLOOKUPに相当する関数が存在しません。代わりに「クエリのマージ」という機能を使います。

要するに、2つのテーブルを共通のキー列で結合する操作です。データベースの「JOIN」と同じ考え方ですね。

手順:

  1. Power Queryエディターで、結合したい2つのテーブルをそれぞれ読み込む
  2. メニューバーの「ホーム」→「クエリのマージ」をクリック
  3. 結合先のテーブルを選び、共通のキー列をそれぞれクリックして選択
  4. 結合の種類は「左外部(最初のテーブルのすべての行と、2番目のテーブルの一致する行)」を選ぶ — これがVLOOKUPに最も近い動作
  5. 結合されたテーブル列の展開ボタン(⇔アイコン)をクリックして、必要な列だけ展開する

Microsoftの公式ドキュメントによると、結合の種類は全6種類ありますが、VLOOKUP的に使うなら「左外部」一択でOKです。

VLOOKUPとの大きな違いは、一度マージを設定すれば、元データが更新されても自動で反映されること。VLOOKUPのように数百行のセルに数式を入れる必要がないので、ファイルも軽くなります。

3. MID → Text.Middle(0始まりの罠)

ExcelのMID関数は「何文字目から何文字取る」を指定しますが、Power QueryのText.Middle開始位置が0始まりです。ここを間違える人がとても多いです。

Excelの場合:

=MID(A2, 3, 4) → 3文字目から4文字取る

Power Queryの場合:

Text.Middle([列名], 2, 4) → 3文字目から4文字取る(0始まりなので「2」を指定)

つまり、Excelの開始位置から1を引いた数をPower Queryでは指定する、と覚えてください。

ちなみに、似た関数にText.Rangeもありますが、文字数が足りないとエラーになります。Text.Middleのほうがエラーになりにくいので、初心者にはText.Middleがおすすめです。

Power Queryでカスタム列を追加する手順

「早見表はわかったけど、実際にどこに数式を入れればいいの?」という方のために、カスタム列を追加する基本手順を紹介します。

  1. Excelでデータ範囲を選択し、「データ」タブ →「テーブルまたは範囲から」をクリックしてPower Queryエディターを開く
  2. メニューの「列の追加」タブ →「カスタム列」をクリック
  3. 「カスタム列の数式」欄に、M言語の数式を入力する(例: if [売上] >= 10000 then "達成" else "未達"
  4. 列名を入力して「OK」をクリック
  5. プレビューで結果を確認し、「ホーム」→「閉じて読み込む」でExcelシートに反映する

この流れさえ覚えれば、早見表の関数をすぐに試せます。

Excel関数とPower Query、どっちを使えばいい?

「じゃあ全部Power Queryに置き換えたほうがいいの?」と思うかもしれませんが、答えはケースバイケースです。

こんなときおすすめ
1回きりの計算・ちょっとした集計Excel関数
毎月同じ形式のデータを加工するPower Query
VLOOKUPが数百〜数千行あるPower Query(処理が軽い)
複数のCSV・Excelファイルを結合するPower Query一択
他の人もメンテするシートExcel関数(Power Queryを知らない人でも扱える)

要するに、繰り返し作業はPower Query、単発の計算はExcel関数と使い分けるのがベストです。

FAQ

Power QueryはExcelのどのバージョンから使えますか?

Excel 2016以降であれば標準搭載されています。Excel 2010・2013では無料アドインとしてインストールが必要です。Microsoft 365(旧Office 365)を使っていれば、常に最新版のPower Queryが利用可能です(2026年3月現在)。

Power Queryで書いた数式がエラーになります。何を確認すればいい?

まず大文字・小文字が正しいかを確認してください。M言語は大文字・小文字を区別するので、text.startではなくText.Startと書く必要があります。次に、列名が角カッコ[]で囲まれているかを確認しましょう。

VLOOKUPのように「見つからなかったら空白」にするにはどうすればいい?

「クエリのマージ」で左外部結合を使えば、一致しない行は自動的にnull(空白)になります。もしnullを別の値に置き換えたい場合は、該当列を右クリック→「値の置換」でnullを任意の値に変換できます。

Power Queryで作ったクエリは他の人と共有できますか?

はい、Excelファイル内にクエリが保存されるので、ファイルを共有すればそのまま使えます。ただし、データソースのパス(ファイルの保存場所)が異なる場合はエラーになることがあるので、共有フォルダのパスを使うのがおすすめです。

参考文献