皆さんはExcelで資料を作るときに欲しいデータをどこかのシステムから手作業で落としてきたり、手作業で加工していますか?
データベースからCSVファイルをダウンロードしてシートに貼り付けたり、VLOOKUPを使って別表から値を取得したり、SUMIFを使って集計をしたり、LEFTやIFなどで文字加工したりなど、、、
手作業が多くて結構大変ですよね。何度もやる作業ならVBAでマクロを組む方法がありますが、開発スキルもいるし、慣れていないと時間がかかります。
しかし、これらのデータ処理が簡単にできて、しかもボタン一つで自動化出来るとしたらどうでしょうか?業務が楽になると思いませんか。
【結論】データ処理(取得→加工→出力)が簡単に自動化できます
Power Queryはデータ処理が簡単になるツールです。Microsoftが開発しています。ExcelやPower BIで利用でき、データの取得、加工、出力が簡単にできます。一度設定すると一連の流れを自動化出来ます。そのため、定期的にデータ加工をしている方は非常に役立ちます。
Power Query(パワークエリ)でできること
データの取得
ファイル(Excel、CSVファイル、PDFなど)からデータを取得できる
自分のパソコンの中や共有フォルダにある、ExcelやCSVファイル、PDFファイルなんかも取得できます。ExcelやCSVファイルは同じレイアウトであれば、同じフォルダに置けば一括で取得可能です。
データベースからデータを取得できる
AccessやOracle、SQL Serverなどのデータベースからデータを取得できます。
クラウドサービスのデータを取得できる
SharePoint、FabricなどのMicrosoft系はもちろん、Googleアナリティクスなどの他ベンダーのサービスもデータを取得できます。
Webサイトの情報を取得できる
Webサイトにアクセスし、特定の情報だけを取得(スクレイピング)して、表形式に加工できます。
データ件数はExcelの限界を突破できる
大量のデータでもサクサク処理できるので、時間を節約できます。Excelは最大100万件程度ですが、Power Queryは最大20億件程度も処理できます。
データの加工
取得したデータを加工できます。
データ型を形式変換したり、文字列を加工できる
数字を文字形式に、文字を数値形式に、20240630などの数字を日付形式に変換できます。
不要な列を削除したり、ソート順を変更できる
データ出力したくない不要な列を削除したり、特定の列に昇順、降順を指定できます。
列を追加して文字列操作や四則演算などの計算ができる
複数の列の値を結合したり、特定の区切り文字ごと(スペース区切りなど)に列を分割したり、頭何文字を取得したり出来ます。数値形式であれば、計算用の列を追加して掛け算、足し算などの計算も可能です。
これらはM言語と呼ばれるPower Queryで使える関数型言語を使って記述できます。
IF文を使って条件分岐もできるため、複雑な加工も可能です。
データを結合、追加できる
他で取得したデータを、結合するキーを指定して結合し、列を追加できます。Vlookupで他の表からデータを取得するイメージです。また、結合は列追加になりますが、他で取得したデータを行追加することもできます。
横並びの表を縦に並び替えられる
以下のようなマトリクス表は人間が見やすいですが、データとして扱いにくいです。
縦に並び替えることができます。
データの出力
データの取得、加工が終わったらExcelやPower BIに出力可能です。Excelに出力した場合、出力用シートが自動的に作成され、シート内にデータが取得されます。
ここまで出来たら、データの更新があれば「更新」ボタンを押すだけで、データの取得、加工、出力を自動的に行なってくれます。
その他
作成したクエリを他のExcelに引っ越しできる
Power Queryで作成したクエリを他のExcelファイルで活用したい場合、「クエリと接続」から簡単に他のExcelファイルにコピーできます。
コピー&ペーストするか、ファイルにエクスポート&インポートで簡単に引っ越しできます。
Excelを使ってPower Queryを実際に触ってみよう
Power Queryでデータを処理する流れを簡単に紹介します。Microsoft365版のExcelを使用しています。
Excelで作った売上明細ファイルを取得して、数量と単価を掛けて金額列を追加します。
テストデータを自分で用意する場合は、Copilotを使えば簡単に作成してくれます。
私は次のメッセージを入力して、テストデータを作ってもらいました。
「テストデータを作成してください。列は、売上日、得意先、商品名、数量、単価です。商品名はお菓子でお願いします。得意先は、架空の企業名を適当に考えてください。売上日は2025年1月~2025年12月です。 件数は各月で8件作成してください。」
データの取得
以下の手順でExcelブックからデータを取得します。
Excelファイルを選択し、インポートします。
今回はデータの加工を行うため、「データの変換」をクリックします。データの加工をしなければ「読み込み」をクリックで良いです。
データの加工
読み込んだデータに対して、数量と単価を掛けた金額列を追加します。
「列の追加」タブを開き、「カスタム列」をクリックします。
「新しい列名」に「金額」と入力します。「カスタム列の式」に数式を入力しますが、「使用できる列」から数量、単価 (円)をダブルクリックすると、項目名を自動入力してくれます。「*」で掛け算し、OKをクリックします。
金額列が追加されます。「適用したステップ」にステップが追加され、クリックするとステップの数式が参照できます。この数式はM言語と呼ばれ、直接修正も可能です。
データの出力
データの加工が完了したら、「閉じて読み込む」をクリックします。
加工したデータをExcelシートに出力されます。出力された表はテーブルになっており、データとして扱いやすくなっています。ここからピボットテーブルを使って集計したり、グラフを挿入してデータ分析などを行えます。
読み込み元のExcelが更新され、データを最新化したい場合はどうすればいいでしょうか?
その場合は、「クエリ」タブをクリックし、「更新」をクリックします。
データが更新されます。
まとめ
Power Queryは、データ処理(取得→加工→出力)が簡単に自動化できる強力なツールです。
直感的なインターフェースと豊富な機能で、ExcelマクロやExcelの数式をゴリゴリ組んでデータ処理するより簡単です。
もしまだPower Queryを使ったことがないなら、ぜひその便利さを体験してみてください。