Power Queryで列の削除・置換・並べ替えまで済ませたあと、その結果をCSVファイルにして別のシステムへ渡したいことがあります。ただ、ExcelのPower Queryエディターには、結果を直接CSVファイルへ書き出す機能はありません。
手順は次の2段階になります。
- クエリの結果をワークシートのテーブルとして読み込む
- そのシートをCSV形式で保存する
この記事では、この2段階の手順を説明します。あわせて、保存したCSVで崩れやすい先頭の0・日付・行数を確認するところまで扱います。
全体の流れ
| 段階 | 作業 | 確認すること |
|---|---|---|
| 1 | Power Queryエディターで型を見る | 先頭に0がある列がテキスト型か |
| 2 | シートに読み込む | 読み込まれた行数・エラー件数 |
| 3 | 出力したい表を新しいブックへ写す | 集計行や余分なセルが入っていないか |
| 4 | 日付・数値の表示形式を整える | 取り込み先が指定する形と同じか |
| 5 | CSVで保存する | ファイルの種類・ファイル名 |
| 6 | テキストエディターで開いて確認する | 先頭の0・日付・行数 |
手順1:読み込む前にPower Queryエディターで型を見る
CSVに書き出される値は、シートに読み込まれた時点で決まります。シートに入ってからでは直せない崩れもあるので、エディターの段階で次の点を見ておきます。
- 先頭に0がある列(商品コード・郵便番号・社員番号など):列見出しの左のアイコンが「ABC」(テキスト)になっているか見ます。「123」や「1.2」(数値)になっていると、読み込んだ時点で
00123が123に変わります。 - 「変更された型」ステップ:CSVなどを取り込んだ直後に、自動で追加されることがあります。このステップでコード列が数値に変換されていないか、「適用したステップ」の一覧から確認します。
- 日付の列:日付型か、日付/時刻型かを見ます。日付/時刻型のままだと、シート上で時刻付きで表示され、そのままCSVに出ることがあります。
コード列が数値型になっていたら、列見出しのアイコンをクリックして「テキスト」に変えます。「現在のものを置換」か「新規手順の追加」かを聞かれたら、「現在のものを置換」を選びます。「新規手順の追加」を選ぶと、いったん数値に変換されて0が消えた値をテキストに戻すだけなので、00123は戻りません。
手順2:クエリの結果をシートに読み込む
- Power Queryエディターで「ホーム」→「閉じて次に読み込む」を選ぶ
- 「テーブル」を選び、読み込み先を「新規ワークシート」にする
- 「OK」を押す
「接続専用」で作ってあるクエリは、Excelの「データ」→「クエリと接続」でクエリを右クリックし、「読み込み先」から同じ設定に変えられます。
読み込みが終わると、「クエリと接続」ウィンドウのクエリ名の下に、読み込まれた行数が表示されます。この数字はCSVの行数と照合するときの基準になるので、控えておきます。エラーがあればその件数も表示されるため、0件でないときは先にクエリ側を直します。
なお、ワークシートに入る行数には上限(1,048,576行)があります。それを超える結果はこの方法では出力できないため、抽出条件を変えて何回かに分けて出力します。
手順3:出力したい表を新しいブックへ写す
クエリのあるブックを、そのまま「名前を付けて保存」でCSVにすることもできます。ただし、おすすめしません。
- CSVに保存されるのは、保存したときに表示していたシート1枚だけ
- 保存すると、開いているファイルがCSVに切り替わり、クエリや他のシートはそのファイルに残らない
- 元の.xlsxを保存していないと、作業内容を失うおそれがある
そこで、出力したい表だけを新しいブックへ写してから保存します。
- 読み込まれたテーブルのセルを1つ選び、Ctrl+Aを押す。見出し行まで選択されていなければ、もう一度Ctrl+Aを押す
- Ctrl+Cでコピーする
- Ctrl+Nで新しいブックを作る
- A1セルを選び、「ホーム」→「貼り付け」→「値と数値の書式」で貼り付ける
「値」だけで貼り付けると、日付の表示形式が消えて46000前後のシリアル値で表示され、その数字がCSVに出てしまいます。「値と数値の書式」なら、クエリとのつながりやテーブルの色は付いてこず、日付の表示は残ります。テキストとして読み込まれた00123は、貼り付けたあとも文字列のままです。
貼り付けたら、次の点も確認します。
- 集計行を表示していた場合、合計の行まで貼られていないか
- 表の右や下に、メモや計算用のセルが残っていないか(CSVには、シート上で値が入っている範囲がすべて出ます)
- 見出し行の列名と順番が、取り込み先の指定どおりか
手順4:日付と数値の表示形式を整える
ExcelでCSVとして保存すると、日付や数値はセルに表示されている形で書き出されます。そのため、保存する前に表示形式を整えておきます。
| 列 | 起きやすい崩れ | 保存前の対処 |
|---|---|---|
| 日付 | 2026/10/5や2026/10/5 0:00など、取り込み先の指定と違う形になる |
列を選び「セルの書式設定」→「ユーザー定義」でyyyy/mm/ddやyyyy-mm-ddなど指定の形にする |
| 金額 | 桁区切りの付いた1,234がそのまま出る |
表示形式を「標準」か、桁区切りなしの「数値」にする |
| 小数 | 表示している桁数で丸めた値が出る | 必要な桁数まで表示されているか確認する |
| コード | 文字列のままなら崩れにくい | エラーチェックの「数値に変換する」を押さない |
毎回同じ形で出力したい場合は、Power Query側で日付をテキストに変換しておく方法もあります。たとえば「列の追加」→「カスタム列」で次のように書くと、2026-10-05の形の文字列になります(日付は実際の列名に置き換えてください)。
Date.ToText([日付], "yyyy-MM-dd")
書式文字列のMM(月)とmmは意味が違うので、大文字・小文字に注意します。
手順5:CSVとして保存する
- 新しいブックで「ファイル」→「名前を付けて保存」を選ぶ
- ファイルの種類で「CSV UTF-8(コンマ区切り)」か「CSV(コンマ区切り)」を選ぶ
- ファイル名を付けて保存する
どちらの形式にするかは、取り込み先のシステムが指定する文字コードに合わせます。指定がわからなければ、取り込み先のマニュアルや設定画面で確認してください。
保存するときに、一部の機能が失われるという趣旨のメッセージが出ることがあります。出力専用のブックなので、そのまま保存してかまいません。
手順6:保存したCSVをメモ帳で確認する
確認には、Excelではなくメモ帳などのテキストエディターを使います。ExcelでCSVを開くと、ファイルの中では00123のままでも123と表示されたり、日付が別の形で表示されたりします。これではファイルの中身が正しいか判断できません。さらに、そのまま上書き保存すると、ファイルの中身まで本当に崩れてしまいます。
- 1行目が見出しで、列名と順番が取り込み先の指定どおり
- 先頭に0がある列で、
00123のように0が残っている - 日付が指定どおりの形になっている(区切り記号、月日の0埋め、時刻の有無)
- 金額に桁区切りのカンマや、余計な引用符が付いていない
- 行数が「見出し1行+手順2で控えた行数」になっている
- 最後のほうに
,,,,のような空の行が並んでいない
行数は、メモ帳でCtrl+Endを押してファイルの末尾へ移動し、画面下のステータスバーに出る行番号で確かめます。最終行のあとに改行があると、1行多く表示されることがあります。
また、セル内に改行を含む列があると、メモ帳の行数はデータの件数より多くなります。その場合はメモ帳の行数では照合できないので、取り込み先で読み込まれた件数で確かめます。
毎月同じ出力を繰り返すとき
- クエリのあるブック(.xlsx)は、出力したCSVとは別に保存しておく
- 元データを差し替えたら「データ」→「すべて更新」を押し、読み込まれた行数を確かめてから手順3〜6を行う
- 日付の表示形式を毎回直す手間を省きたいなら、手順4のようにPower Query側でテキストにしておく
- 手順3〜5は操作が毎回同じなので、慣れたらマクロにまとめることもできます。その場合も、手順6の確認は手作業で残しておきます
まとめ
Power Queryの結果をCSVにするときは、「シートに読み込む」→「新しいブックへ値と数値の書式で写す」→「表示形式を整えて保存」の順に進めます。崩れやすいのは先頭の0・日付・数値の表示の3つです。先頭の0は読み込む前の型で、日付と数値は保存する前の表示形式で決まります。最後はメモ帳で開き、読み込まれた行数と合っているかを確認します。
