Power Queryで列の削除・置換・並べ替えまで済ませたあと、その結果をCSVファイルにして別のシステムへ渡したいことがあります。ただ、ExcelのPower Queryエディターには、結果を直接CSVファイルへ書き出す機能はありません。

手順は次の2段階になります。

  1. クエリの結果をワークシートのテーブルとして読み込む
  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:クエリの結果をシートに読み込む

  1. Power Queryエディターで「ホーム」→「閉じて次に読み込む」を選ぶ
  2. 「テーブル」を選び、読み込み先を「新規ワークシート」にする
  3. 「OK」を押す

「接続専用」で作ってあるクエリは、Excelの「データ」→「クエリと接続」でクエリを右クリックし、「読み込み先」から同じ設定に変えられます。

読み込みが終わると、「クエリと接続」ウィンドウのクエリ名の下に、読み込まれた行数が表示されます。この数字はCSVの行数と照合するときの基準になるので、控えておきます。エラーがあればその件数も表示されるため、0件でないときは先にクエリ側を直します。

なお、ワークシートに入る行数には上限(1,048,576行)があります。それを超える結果はこの方法では出力できないため、抽出条件を変えて何回かに分けて出力します。

手順3:出力したい表を新しいブックへ写す

クエリのあるブックを、そのまま「名前を付けて保存」でCSVにすることもできます。ただし、おすすめしません。

  • CSVに保存されるのは、保存したときに表示していたシート1枚だけ
  • 保存すると、開いているファイルがCSVに切り替わり、クエリや他のシートはそのファイルに残らない
  • 元の.xlsxを保存していないと、作業内容を失うおそれがある

そこで、出力したい表だけを新しいブックへ写してから保存します。

  1. 読み込まれたテーブルのセルを1つ選び、Ctrl+Aを押す。見出し行まで選択されていなければ、もう一度Ctrl+Aを押す
  2. Ctrl+Cでコピーする
  3. Ctrl+Nで新しいブックを作る
  4. 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として保存する

  1. 新しいブックで「ファイル」→「名前を付けて保存」を選ぶ
  2. ファイルの種類で「CSV UTF-8(コンマ区切り)」か「CSV(コンマ区切り)」を選ぶ
  3. ファイル名を付けて保存する

どちらの形式にするかは、取り込み先のシステムが指定する文字コードに合わせます。指定がわからなければ、取り込み先のマニュアルや設定画面で確認してください。

保存するときに、一部の機能が失われるという趣旨のメッセージが出ることがあります。出力専用のブックなので、そのまま保存してかまいません。

手順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は読み込む前の型で、日付と数値は保存する前の表示形式で決まります。最後はメモ帳で開き、読み込まれた行数と合っているかを確認します。

おすすめの記事