いまさら聞けないExcelの使い方講座
【Excel】毎月のCSV加工を自動化! CopilotにPower QueryのMコードを書いてもらう
2026年9月23日 08:17
毎月のCSV加工、もっと楽にできない?
毎月届くCSVファイルを開いて、不要な列を削除したり、列を並べ替えたりしていませんか。さらに計算用の列を追加して数式をコピーし、最後に書式を整える。1回の作業はそれほど大変でなくても、毎月同じ操作を繰り返すとなると面倒です。
Excelで繰り返す操作を自動化する場合、VBAを思い浮かべる人も多いでしょう。しかし、今回のように「毎月届くデータを同じルールで加工する」作業なら、VBAを使わなくてもPower Queryで効率化できる場合があります。
ただ、Power Queryならデータ加工を繰り返せることを知っていても、初回の設定が面倒で、結局手作業を続けている人もいるでしょう。
そこで今回は、普段行っている処理をCopilotに伝えて、Power Queryで利用できる「Mコード」を作ってもらいます。Power Queryの操作とMコードの関係を確認しながら、毎月のCSV加工を効率化してみましょう。
Power Queryの操作は「M言語」で記述されている
Power Queryエディターで列を削除したり、データ型を変更したりすると、右側の[適用したステップ]に操作内容が順番に追加されます。
これらの処理は、内部では「Power Query M 数式言語」(以下、M言語)で表現されています。例えば、列を削除する操作なら「Table.RemoveColumns」、列を追加する操作なら「Table.AddColumn」といった関数が使われます。
Power Queryエディターを画面上で操作するだけなら、M言語を意識する必要はありません。画面上で操作すれば、必要なMコードは自動的に作成されます。
逆に考えると、必要な処理を記述したMコードを用意できれば、Power Queryエディターで1つずつ操作する代わりに、そのコードをまとめて設定することもできます。ただし、M言語を一から覚えて、自分でコードを書くのはなかなか大変です。ここでCopilotの出番です。
やりたい処理をCopilotに伝えてMコードを作ってもらう
ここでは、毎月受け取る売上データのCSVファイルを例にします。注文日、顧客名、商品名、単価、数量などの列を残して、「単価×数量×(1-値引率)」で求められる売上金額の列を追加するとしましょう。
毎月の定型処理を整理し、CSVファイルとあわせて、Power Queryで実行したい旨をCopilotに伝えます。ここでは、Copilotの回答が読みやすいように、Web版のCopilotを利用しています。
添付したCSVファイルをPower Queryで取り込み、毎月次の処理を行いたいです。不要な列を削除して、「売上金額」列を追加します。指定した順番に列を並べてください。
・必要な列と順番:注文日、注文番号、顧客名、地域、カテゴリ、商品名、単価、数量、値引率、売上金額、税区分、担当者、備考
・売上金額は「単価×数量×(1-値引率)」で計算する
・各列には適切なデータ型を設定する
翌月以降も、同じ構成のCSVファイルに対して処理を繰り返します。指定したフォルダーにあるCSVファイルを処理するためのMコードを作成してください。
生成されたMコードには、CSVファイルの読み込みや、不要な列の削除、売上金額の計算、列の並び替えといった処理が含まれています。コード全体を読み解く必要はありませんが、意図した処理が記述されているかは確認しておきましょう。
また、注意書きにもあるようにCSVファイルを保存するフォルダーのパス("C:DataMonthlySales")は書き換える必要があります。
続けて、MコードをPower Queryに組み込みますが、意図する動作と異なる箇所があれば、Copilotに伝えればコードを修正してもらえます。
例えば、「売上金額は整数にする」「複数のファイルがある場合の処理を追加する」といったやり取りを通じて、コードをブラッシュアップできます。自分でMコードが書けなくても、やりたい処理を日本語でやり取りして、コードを整えていけるのは助かりますね。
MコードをPower Queryに組み込む
CopilotがMコードを提示してくれても、Power Queryへ組み込む手順までは簡単な説明で終わることがあります。実際の操作を確認しておきましょう。
今回のMコードには、CSVファイルの読み込み処理も含まれているため、新規のExcelファイルを開いて「空のクエリ」を作成します。Copilotが生成したMコードを[詳細エディター]に貼り付けて利用します。
また、コード内に記述されているCSVファイルの保存場所(パス)は、自分の環境に合わせて修正します。そのフォルダーに処理するCSVファイルも保存しておきます。
ここで、ファイルの種類を[Excelテンプレート(*.xltx)]として保存することがポイントです。Excelテンプレートファイルを開くと、新規のExcelファイルが作成されます。
テンプレートファイルを保存する際に、元のデータをクリアして、ファイルを開いた時にデータを更新するように設定しておけば、CSVファイルを入れ替えてテンプレートファイルを開くだけで、加工後のデータが読み込まれます。
テンプレートファイルの保存先は、任意で構いませんが、CSVファイルを保存するフォルダーとセットにしておくといいでしょう。
翌月のCSVに差し替えて検証する
では、8月分のCSVファイルを、同じ列構成の9月分CSVファイルに入れ替えて、Excelテンプレートファイルを開いてみましょう。定型処理なので、CSVファイルの構造は同じです。
差し替えたCSVファイルが同じルールで加工され、Excelファイルとして開かれました。あとは任意のフォルダーに保存するだけです。毎月繰り返していた、不要な列の削除、計算列の追加、列の並べ替えといった操作を省略できました。
今回のように、毎月同じ構造のデータを同じルールで加工する作業なら、VBAを書かなくてもPower Queryで自動化できます。さらに、Power Queryの処理はM言語で表現されるため、やりたい処理をCopilotに伝えてMコードにまとめてもらうことも可能です。手作業を繰り返しているCSVファイルがあるなら、その加工手順を一度Copilotに相談してみるといいでしょう。








































