PR

Excel関数とPower Queryの対応表|VLOOKUPやIFはどう書く?

Power Query応用
スポンサーリンク

「Excelならすぐに書ける数式が、Power Queryではどう書けばいいかわからない」と悩んでいませんか?

VLOOKUPやIF、LEFT関数など、使い慣れたExcel関数がPower Queryのエディタ上ではそのまま使えず、作業が止まってしまうことはよくあります。しかし、その多くは難しい数式(M言語)を覚える必要はなく、マウス操作だけで完結します。

この記事では、実務で頻出するExcel関数に対応するPower Queryの「操作」と「関数」を完全網羅しました。Excelの知識をそのままPower Queryのスキルに変換し、データ加工を自動化しましょう。

本記事のExcelは次のバージョンを使用しています。
Microsoft® Excel® for Microsoft 365 MSO (バージョン 2602 ビルド 16.0.19725.20014) 64 ビット

スポンサーリンク

【最重要】VLOOKUP関数(データの結合)はどうやる?

実務で最も使用頻度が高いVLOOKUP関数(またはXLOOKUP関数)。Power Queryでは関数を使わず、Power Queryエディターの「クエリのマージ」という機能で実現します。

手順1:クエリのマージを実行する

「ホーム」タブー「クエリのマージ」をクリックします。

VLOOKUPしたいテーブルを選択し、次に結合する列をそれぞれのテーブルで指定します。
「結合の種類」は左外部のままで問題ありません。OKをクリックします。

手順2:結合したテーブルを展開する

例では商品マスタを結合しました。商品マスタという列が追加されていますが、そのままではテーブル形式になっており、データとして活用できません。テーブルを展開する必要があります。
「商品マスタ」列の⇔ボタンをクリックします。

展開する列を必要に応じて選択します。「元の列名をプレフィックスとして使用します」にチェックが入ると、展開後の列名に「商品マスタ.商品名」といったようにテーブル名が頭に入るため、必要に応じてチェックを外しましょう。
設定が終わればOKをクリックします。

列の展開が完了しました。

これで、VLOOKUP関数を何千行もコピー&ペーストする必要はなくなります。処理速度も圧倒的に高速です。

Microsoft公式ドキュメントも参考になります。

スポンサーリンク

【頻出】IF関数(条件分岐)はどうやる?

「もし〜ならA、そうでなければB」という条件分岐も、Power Queryでは直感的に設定可能です。

「条件列」機能を使えばマウス操作だけで完結

簡単な条件であれば、数式を書く必要はありません。

  1. 列の追加タブの「条件列」をクリックします。
  2. ダイアログボックスで「列名」「演算子(等しい、指定の値より大きいなど)」「値」「出力する結果」を設定します。
  3. 条件をさらに追加したい場合は「規則の追加」ボタンを押します。

ExcelのIF関数を入れ子(ネスト)にするよりも、視覚的にわかりやすく管理できます。

複雑な条件(AND/OR)はカスタム列で数式を書く

「AかつB」や計算式を含む条件の場合は、「カスタム列」でM言語のif式を使います。

Excel関数Power Query関数
=IF(A1>=70, "合格", "不合格")if [点数] >= 70 then “合格” else “不合格”

ExcelのIF関数との書き方の違い

Power Queryのif文はすべて小文字で記述する必要があります。

  • if ... then ... else ...
  • × IF ... THEN ... ELSE ...

また、ExcelのようにIF(条件, 真の場合, 偽の場合)というカンマ区切りではなく、thenelseを使って文章のように記述する点が特徴です。

参考:Power Query 条件式 – Microsoft Learn

スポンサーリンク

文字列操作関数の対応表と操作方法

Excelの文字列操作関数に対応するPower Queryの機能(M言語)一覧です。

多くは、対象の列を選択し、変換タブまたは列の追加タブにある「抽出」「形式」メニューから実行できます。

Excel関数Power Query (M言語)操作 (GUI)備考
LEFTText.Start([列], 文字数)「抽出」→「最初の文字」左から指定文字数の文字を取得する
RIGHTText.End([列], 文字数)「抽出」→「最後の文字」右から指定文字数の文字を取得する
MIDText.Middle([列], 開始位置, 文字数)「抽出」→「範囲」指定文字位置から指定文字数の文字を取得する
開始位置は0から始まります (Excelは1から)
TRIMText.Trim([列])「形式」→「トリミング」先頭と末尾にある空白を削除し、単語間で2つ以上連続した空白を1つだけ残す
LENText.Length([列])「抽出」→「長さ」文字の長さを取得する
UPPERText.Upper([列])「形式」→「大文字」小文字を大文字に変換する
& または CONCATENATEText.Combine({[列1],[列2]}, “区切り記号”)「列のマージ」文字列を結合する
数値列はテキスト型への変換が必要
SUBSTITUTEText.Replace([列], "旧", "新")「値の置換」値を置換する
MIN
List.Min([列])「統計」ー「最大値」指定範囲の数値の最小値を取得する
MAXList.Max([列])「統計」ー「最小値」指定範囲の数値の最大値を取得する

Text.Middleの開始位置は0から始まります。ExcelのMID関数は1文字目を「1」と数えますが、Power Queryは「0」と数えます。2文字目から抽出したい場合、開始位置は1を指定してください。

スポンサーリンク

日付・時刻操作関数の対応表と操作方法

Excelの日付操作関数に対応するPower Queryの機能(M言語)一覧です。

多くは、対象の列を選択し、変換タブまたは列の追加タブにある「日付」メニューから実行できます。

Excel関数Power Query (M言語)操作 (GUI)備考
YEARDate.Year([日付列])「日付」ー「年」ー「年」日付から年を取得する
MONTHDate.Month([日付列])「日付」ー「月」ー「月」日付から月を取得する
DAYDate.Day([日付列])「日付」ー「日」ー「日」日付から日を取得する
EOMONTHDate.EndOfMonth([日付列])「日付」→「月」→「月末」Excelのように「1ヶ月後の月末」を出す場合は、先に「月を加算」を行ってから「月末」を適用
NOW または TODAYDateTime.LocalNow()なし (カスタム列)現在の日付・時刻を取得する
DATEDIFDuration.Days([終了日]-[開始日])「日付」→「期間」→「日数」日付同士を引き算するとDuration型になるため、日数に変換が必要
DATE#date(yyyy, mm, dd)なし (カスタム列)年月日を引数にいれると、日付型で値を返す
スポンサーリンク

数値・その他の関数の対応表

Excel関数Power Query (M言語)操作 (GUI)
ROUNDNumber.Round([数値列], 桁数)「丸め」→「四捨五入」
ROUNDDOWNNumber.RoundDown([数値列], 桁数)「丸め」→「切り捨て」
ABSNumber.Abs([数値列])「科学」→「絶対値」
IFERROR「エラーの置換」機能を使用「変換」タブ→「値の置換」→「エラーの置換」

Power Queryでは、ゼロ除算などが起きるとセルにErrorと表示されます。これを0や空白に置き換えたい場合は、右クリックメニューの「エラーの置換」を使用するのが最も簡単です。

スポンサーリンク

まとめ

Power Queryを使う際、すべてのExcel関数をM言語で書き直す必要はありません。

  1. まずはリボンメニューのボタン(操作)で実現できないか探す。
  2. 特にVLOOKUPは「クエリのマージ」で対応する。
  3. 細かい文字列加工や条件分岐だけ、M言語(カスタム列)を使用する。

この優先順位を意識するだけで、学習コストは大幅に下がります。この記事の対応表をブックマークして、実務の中で少しずつ操作に慣れていってください。

Excel/Power Queryのデータ加工相談サービス

Excel/Power Queryのデータ加工で悩んでおり、ネットや本で調べても解決しない場合は、一度ご相談下さい。

やりたいことをヒアリングして解決までサポートいたします。

ご相談内容の例
  • 前任者が作ったExcelファイルの数式等が意味不明で困っている
  • Power Queryを使ってExcelでデータ加工を行いたいが、うまく使いこなせない
  • 手作業が多く、業務効率化を行いたいが、どう進めていいか分からない

ココナラでご相談を受け付けております。ココナラの会員登録が必要になります。

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

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

たがみをフォローする
シェアする
たがみをフォローする
タイトルとURLをコピーしました