Power QueryでCSVの文字化け・先頭ゼロを防ぐ方法
CSVを開いたら日本語が文字化けした、商品コードの「000101」が「101」になった。こうした問題は、文字コードとデータ型を読み込み時に確認することで防ぎやすくなります。
最初に全列をテキストとして取り込み、コードを保ったまま、日付・数量・価格だけを必要な型へ変更する手順を紹介します。
文字コードとデータ型は別の設定
| 症状 | 確認する設定 |
|---|---|
| 日本語が読めない | 文字コード(ファイルの元の形式) |
| 「000101」が「101」になる | 商品コード列のデータ型 |
| 日付の月日が逆になる | 日付形式とロケール |
| 価格が文字列やエラーになる | 数値形式、通貨記号、区切り記号 |
文字化けを直しても先頭ゼロは戻りません。問題ごとに設定を分けて確認します。
1.文字コードを確認して読み込む
- 新しいExcelブックを開き、「データ」→「テキストまたはCSVから」を選びます。
- 対象CSVを選び、読み込み前のプレビューを表示します。
- 「ファイルの元の形式」で、元ファイルの文字コードを指定します。
- 今回の練習用CSVでは「65001: Unicode (UTF-8)」を選びます。
- 区切り記号をカンマにし、商品名と見出しが正しく読めるか確認します。
仕入先のCSVがShift_JIS系なら、通常は「932: 日本語 (Shift-JIS)」を確認します。見た目だけで決めず、提供元の仕様に合わせてください。
Power Queryでは文字コード、区切り記号、データ型検出をそれぞれ指定できます。自動判定だけに頼らずプレビューを確認します。MicrosoftのText/CSVコネクタ解説
2.商品コードをテキストで取り込む
- 読み込み画面に「データ型の検出」がある場合は、「データ型を検出しない」を選びます。
- 「データの変換」でPower Queryエディターを開きます。
- 「商品コード」と「注文番号」の列をテキスト型にします。
- 商品コードが「000101」のように6桁で残っていることを確認します。
右側の「適用したステップ」に自動の「変更された型」がある場合は、そのステップでコードが数値へ変わっていないか確認します。該当ステップを削除または修正し、元のCSVからテキストとして読み直してください。
元CSV自体がすでに「101」へ書き換わっていたら、Power Queryの型設定だけでは元のコードを復元できません。未変更のバックアップや提供元データを使います。
3.日付・数量・価格だけ型を決める
| 練習用CSVの列 | 設定する型 | 確認ポイント |
|---|---|---|
| 注文日 | 日付 | 2026-06-03が意図した年月日になる |
| 注文番号・商品コード | テキスト | 桁数と先頭ゼロを保つ |
| 商品名・販売チャネル | テキスト | 日本語が正しく表示される |
| 数量 | 整数 | 空欄や文字の混入を確認する |
| 単価 | 整数または小数 | 通貨単位と小数の扱いを確認する |
海外のCSVでは、日付の並びや小数点・桁区切りが異なる場合があります。列の型を変更する際に「ロケールを使用」を選び、データの地域に合う解釈を指定します。Microsoftのデータ型・ロケール解説
「円」「個」などが混ざる列は、必要な文字を除去してから型を設定します。変換できない値を無条件にゼロへ置き換えず、確認対象として残します。
複数CSVを結合するときの注意
フォルダーから結合する場合も、見本ファイルを使う変換処理で文字コードと型を確認します。結合後だけ直すのではなく、各ファイルが読み込まれる段階でコードをテキストに保ちます。
月ごとにUTF-8とShift_JISが混在すると、同じ設定で全ファイルを正しく読めないことがあります。提供元ごとに分けるか、事前に文字コードを統一します。
読み込み後の確認チェック
- 見出しと日本語の商品名が読める
- 商品コードの先頭ゼロと桁数が残っている
- 注文日の年月日が元CSVと一致する
- 数量と単価に変換エラーがない
- 練習用CSVを3ファイル結合した場合は15行ある
- 数量・金額の合計が元データと一致する
更新時も同じ確認を続けます。新しい月だけ形式が変わることがあるため、初回に成功した設定を永久に正しいものとは扱いません。
まとめ
文字化けは文字コード、先頭ゼロはデータ型で対処します。まずテキストとして取り込み、コードを保ったまま日付と数値を明示的に変換すれば、元データを壊しにくい流れを作れます。