Excelを使って大量のデータを整理する際、「毎回同じ作業を繰り返している」「関数やマクロで管理が大変」という悩みを持つ人は多いです。
そんなときに役立つのが Power Query(パワークエリ) です。
Power Queryでは、データの取得・整形・結合・変換などを自動化できるだけでなく、M言語という専用の関数を使うことで、柔軟で高度なデータ処理が可能になります。
この記事では、Power Queryで使える主要な関数と、実務で役立つ応用例をわかりやすく解説します。
関数を理解することで、Excelの手作業を大幅に減らし、ミスのない効率的なデータ管理を実現できます。
Power Queryとは?関数との関係を理解しよう
Power Queryとは、ExcelやPower BIに搭載されている データ変換ツール のことです。
CSVやExcelファイル、Webデータ、データベースなど、さまざまな外部ソースからデータを取り込み、整形して分析しやすい形にすることができます。
通常、Excelでは数式(関数)をセルに書き込みますが、Power Queryでは「手順」を記録していくイメージです。
ただし、Power Queryの内部では M言語(Power Query Formula Language) が使われており、これは「関数ベース」で動作します。
つまり、
- 通常のExcel関数:セル内で1つの計算を行う
- Power Query関数:データ全体に対して変換・処理を行う
という違いがあります。
Power Queryで使える関数の種類
Power Queryの関数は多岐にわたりますが、大きく以下のカテゴリに分かれています。
| 分類 | 主な用途 | 代表的な関数例 |
|---|---|---|
| 数値関数 | 数値の計算・丸めなど | Number.Round, Number.Abs, Number.Power |
| テキスト関数 | 文字列操作 | Text.Upper, Text.Lower, Text.Replace, Text.Contains |
| 日付関数 | 日付の抽出・加算など | Date.AddDays, Date.Year, Date.MonthName |
| リスト関数 | 配列やリスト処理 | List.Sum, List.Distinct, List.Count |
| テーブル関数 | テーブル操作 | Table.SelectRows, Table.AddColumn, Table.Group |
| レコード関数 | レコード(行)への操作 | Record.Field, Record.AddField |
| 条件関数 | IF文など条件分岐 | if ... then ... else, Value.ReplaceType |
Excelの関数と似ていますが、Power Queryでは 列や行単位ではなく、テーブル全体に適用する ことが多い点が特徴です。
実務でよく使うPower Query関数ベスト5
① Text.Replace:文字列の置換
指定した文字列を別の文字に置き換える関数です。
Text.Replace([商品名], "旧", "新")
この例では、「旧」という文字を「新」に置き換えます。
Excelの SUBSTITUTE 関数と似ていますが、Power Queryではテーブル全体にまとめて適用できます。
② Date.AddDays:日付に日数を加算
Date.AddDays([出荷日], 7)
出荷日から7日後の「到着予定日」を算出する場合などに便利です。Date.AddMonths や Date.AddYears も同様に使えます。
③ Table.SelectRows:条件に合う行だけ抽出
Table.SelectRows(テーブル名, each [売上] > 10000)
この関数は、テーブルから条件を満たす行のみを抽出します。
SQLでいうところの「WHERE句」のような役割を果たします。
④ Table.AddColumn:新しい列を追加
Table.AddColumn(テーブル名, "税込価格", each [価格] * 1.1)
既存の列から計算結果をもとに新しい列を作ることができます。
「税抜価格」から「税込価格」を作るような処理に最適です。
⑤ List.Distinct:重複の削除
List.Distinct(テーブル名[顧客名])
顧客名のリストから重複を除いて、ユニークな一覧を取得します。
Excelの「重複の削除」よりも高速かつ再利用可能です。
Power Query関数の構文を理解しよう
Power QueryのM言語では、関数は基本的に次のような構文をとります。
関数名(引数1, 引数2, ...)
複数の関数を組み合わせることで、より高度な処理が可能です。
例として、日付列から「年月」だけを抽出するには次のように書きます。
Text.From(Date.Year([日付])) & "-" & Text.PadStart(Text.From(Date.Month([日付])), 2, "0")
この式では、
Date.YearとDate.Monthで日付から年と月を取り出すText.Fromで文字列化するText.PadStartで月を2桁に揃える(例:03月 → “03”)- それらを「-」で連結する
という流れになっています。
Power Query関数の実務活用例
◆ 売上データの集計を自動化
例えば、毎月の売上CSVをPower Queryで取り込み、
「商品カテゴリ別の売上合計」を自動集計することができます。
手順は次の通りです。
- 各月のファイルを同じフォルダに保存
- 「データの取得」→「フォルダーから」読み込み
- Power Queryで
Table.Groupを使ってカテゴリごとに合計 - Excelシートに出力しておけば、次月も「更新」ボタン一つで集計完了
関数例:
Table.Group(テーブル名, {"カテゴリ"}, {{"売上合計", each List.Sum([売上]), type number}})
◆ 不要な空白・文字を削除
アンケートや顧客リストなどで、空白や「様」など余計な文字が混ざっている場合、
次のように簡単に整えられます。
Text.Trim(Text.Replace([氏名], "様", ""))
Text.Trim で前後の空白を除去し、Text.Replace で文字列を置き換えます。
◆ データの更新を自動反映
Power Queryの最大の魅力は「更新の自動化」です。
一度関数と変換ステップを設定しておけば、
新しいデータを追加した際に「更新」ボタンを押すだけで最新データが反映されます。
Excel関数のように壊れたり、マクロのように修正が必要になることも少なく、
メンテナンス性が非常に高いのが特長です。
Power Query関数を覚えるコツ
Power Queryの関数は多く、最初は難しく感じるかもしれません。
しかし、次の3つのポイントを意識すればスムーズに習得できます。
- 「適用されたステップ」を見る
GUIで操作した内容が、自動的にM言語の式として表示されます。
「数式バー」をONにしておけば、どんな関数が使われたか確認可能です。 - Excel関数と対応づけて覚える
Text.Replace→SUBSTITUTE
Date.Year→YEAR
List.Sum→SUM
のように、対応するExcel関数を意識すると理解しやすくなります。 - サンプルデータで試す
テーブルを小さくして試行錯誤しながら学ぶと、エラーの原因もつかみやすくなります。
Power Query関数でできることの幅を広げよう
Power Query関数を理解すれば、次のような業務改善が可能になります。
- 日報・週報の自動集計
- 複数ファイルの一括統合
- 重複データや誤記の自動修正
- 売上分析・顧客分析の効率化
これらはVBAやマクロを使わずに実現できるため、
非プログラマーでも自動化の世界に踏み込める点が魅力です。
まとめ
Power Queryは、Excel作業を「手作業」から「自動化」へと進化させる強力なツールです。
その中核となるのが M言語の関数 であり、これを理解すれば、
データの整形・加工・統合・集計が劇的にスピードアップします。
最初は難しく見えても、
「ステップを記録 → 数式を見る → 少しずつ応用する」
このサイクルを繰り返すことで、確実にレベルアップできます。
日々のExcel作業にPower Queryを取り入れて、
よりスマートで正確なデータ処理を実現していきましょう。
