CSVの文字化けの直し方|Excelの取り込みからゼロ落ち・保存後の確認まで
4.Excelでは新しいブックへ取り込み、プレビューで合わせる
ダブルクリックで開く方法は便利ですが、Excelが文字コードや列の型を推測した結果を、そのまま受け入れる形になりやすくなります。文字化けやゼロ落ちがある場合は、新しいブックの取り込み機能から条件を指定すると、保存前に確認できます。
ここでは「データ」から「テキスト/CSVから」を使う画面を例にします。OS、Excelのバージョン、利用できる機能によって項目名や操作は異なります。画面が一致しない場合は、Microsoftのデータのインポートに関する案内で、利用環境に合う方法を確認してください。
読み込む前に、文字と列の分かれ方を見る
- 空のExcelブックを開き、「データ」内のテキストやCSVを取り込む項目を選びます。
- 作業用に複製したCSV、または保管した原本を読み込み元として選びます。
- プレビューの文字コードの欄を、出力元の指定へ合わせます。
- 区切り文字を合わせ、見出しと各列の値の対応を確認します。
- 列の型を指定するため、「データの変換」などの編集画面へ進みます。
- コード類を文字列、計算する値を数値など、列の意味に合う型にします。
- 確認してから読み込み、原本とは別のブックとして保存します。
文字コードの欄は「元のファイル」などの名前で表示される場合があります。UTF-8や932の候補を切り替えるときは、同じ行の氏名や住所を比べます。日本語が読める候補が見つかっても、丸付き数字や特殊な記号、まれな漢字がある行も確認してください。一部の文字だけ別の問題が残っている場合があります。
見出しがデータ行として入っていないか、逆に最初のデータが見出しとして使われていないかも点検します。ファイル先頭に出力日時や説明が付いている場合、表の見出しは一行目ではないことがあります。読み飛ばす行があるなら、その理由と行数を確認し、実際のデータを消さないようにします。
Power Queryの「変更された型」を確認する
Power Queryでは、読み込み時に列の型を自動で判定することがあります。右側などに表示される「適用したステップ」に「変更された型」があれば、どの列が何へ変換されたかを確認します。数字だけのコードを数値へ変えているなら、その変換を元に戻し、変換前の値からテキストとして扱う必要があります。
数値になった後へ「文字列にする」という手順を追加するだけでは、失われたゼロや桁は復元できません。不要な自動変換の手順を削除・置換するか、自動型検出を無効にできる画面ではそれを選び、元データから指定し直します。MicrosoftのText/CSVコネクタの説明でも、型検出を使わず列をテキストとして読み込む選択肢が案内されています。
複数の列をまとめて設定するときは、コード列だけを選んだつもりで金額列も含めていないか確認します。まず全列を文字列として保ち、意味を確かめた後で計算対象だけ数値へ変える方法もあります。型を変えた結果としてエラーや空欄が増えた場合は、読み込みを完了する前に該当する値を調べてください。
5.列ずれは、区切り文字・引用符・改行を確認する
値の中のカンマも、すべて区切りではない
CSVの基本的な区切りはカンマですが、タブやセミコロンなどで区切られたデータを受け取る場合もあります。日本語が読めているのに一列へまとまるなら、文字コードを変え続けるより、区切りの指定を先に確認します。一部の行だけ列がずれるなら、値に含まれるカンマや引用符、改行が手がかりになります。
次は説明用の架空のデータです。顧客コードは文字列として扱う前提で読んでください。
顧客コード,氏名,備考,金額
00125,山田花子,"東京,大阪の二拠点",1200
00126,佐藤太郎,,0
「東京,大阪の二拠点」は一つの備考です。引用符で囲まれた中のカンマまで列の区切りにすると、金額の位置がずれます。CSVを単純な文字列として一括置換したり、すべてのカンマで分割したりすると、このようなデータを正しく扱えなくなる場合があります。
値の中に二重引用符そのものを含む場合は、二つ重ねて表すなどの規則も使われます。引用符には、項目の範囲を示す役割があります。「邪魔だから全部消す」という修正は避け、CSVとして解釈できる取り込み機能を使ってください。
改行があると、画面上の行数と件数は一致しない
備考や住所などに改行を含むデータは、引用符で囲まれた一つの項目として出力される場合があります。テキストエディターで見ると複数行でも、データとしては一件です。このため、ファイル内の改行数だけを数えて取引件数と比較すると、件数が多いように見えることがあります。
点検するときは、取り込んだ表のレコード数と、出力元の件数をそろえて比べます。見出し行を含むか、空行があるか、合計行が付いているかも条件を合わせます。特定の備考から列がずれるなら、その直前の引用符と改行を確認し、出力元が正しい形式を出しているかも相談してください。
6.先頭のゼロ・長い番号・日付に見えるコードを守る
計算する数か、識別するための文字か
顧客コード「00125」のゼロは、情報の一部です。商品コード、電話番号、郵便番号、伝票番号などは、数字が並んでいても計算の対象とは限りません。数値へ変換すると「125」になり、元の表記を区別できなくなるため、読み込む前に文字列として指定します。
一方、売上金額や数量は、合計や比較をするために数値が必要な場合があります。すべてを文字列にすると表示は保ちやすくなりますが、そのままでは集計に使いにくくなります。まず元の表記を守り、列ごとの用途に合わせて必要な変換を行うと、誤りを追いやすくなります。
| 架空の元の値 | 列の意味の例 | 型を決めるときの考え方 |
|---|---|---|
| 00125 | 顧客コード | 先頭ゼロを含む文字列として保つ |
| 01234567890123456789 | 識別番号 | 全桁を文字列で保ち、数値にしない |
| 1-2 | 商品の枝番号 | 日付へ変えず、そのままの文字列にする |
| 2026/10/03 | 取引日 | 日付の意味と年月日の順を確認する |
| 1200 | 売上金額 | 通貨や単位、空欄の扱いを確認して数値化 |
| 空欄 | 未入力など | ゼロや欠損のどちらかを勝手に決めない |
Excelのワークシートで数値として保持できる有効桁数は15桁です。長い識別番号は読み込み時から文字列にします。詳しくはMicrosoftの「先頭のゼロおよび大きい数値の保持」で確認できます。画面で指数のような表示になっているだけなのか、値そのものが変わったのかを区別するには、原本との照合が必要です。列幅を広げた結果それらしく見えたとしても、末尾まで一致しているかを確かめてください。
取り込み後の書式変更で、すべては戻らない
五桁に見せる表示形式を設定して「00125」と表示できても、元の値が五桁だったと確認したことにはなりません。元のコードが四桁、五桁、六桁で混在していたなら、一律にゼロを足すと別のコードになります。正しい桁数が保証されないデータを、見た目だけで補正しないでください。
日付の自動変換にも注意が必要です。「1-2」が枝番号なのか日付なのかは、列の意味を知らなければ決められません。また「03/04/2026」のような表記は、地域設定によって月日を読み違える可能性があります。日付として扱うなら、出力元の年月日の順を確認し、地域設定も含めて指定します。
小数点や桁区切りの記号も、出力元の慣習と読み取り側が合っているかを見ます。記号を削除すれば済むと考えると、金額の大きさを変えるおそれがあります。単位や負数の表記まで含めて確認し、変換できない行を一律に空欄やゼロへ置き換えないようにします。
型の自動判定は便利ですが、列全体の意味を保証するものではありません。Microsoftのデータ型の説明も踏まえ、先頭付近にない例外の値を確認します。前半が数字だけで、後半に英字付きコードが混ざる列などは、プレビューの数行だけでは問題を見つけにくい例です。










