スポンサーリンク
テクノロジー

CSVの文字化けの直し方|Excelで安全に読み込む手順と確認点

CSVの文字化けの直し方を、文字コードの基本とExcelへの取り込み手順から解説します。UTF-8とShift_JISの確認、区切り文字や先頭のゼロの扱い、上書き前の点検までわかり、名簿や売上データの原本を残しながら安全に読み込めます。

ノートパソコンと資料、外付け記憶装置がある机

業務システムから出力したCSVをExcelで開くと、日本語の名前が読めない文字に変わっている。別の日には、文字は読めたものの商品コードの先頭のゼロが消えていた。どちらも「CSVを開いたらおかしくなった」問題ですが、原因と対処は異なります。

文字化けの多くは、ファイルに使われた文字コードと、開く側の解釈の食い違いによって起きます。この記事では、元のCSVを残したうえで、Excelの取り込み機能で読み直す手順を説明します。文字以外の変化も確認し、業務に使える状態まで整えましょう。

スポンサーリンク

CSVの文字化けは文字コードの食い違いを疑う

CSVは、値をカンマなどの区切りで並べたテキスト形式です。Excelのブックとは違い、セルの色や列幅、複数のシートなどをそのまま保持する形式ではありません。また、ファイルの拡張子が同じ「.csv」でも、使われている文字コードが同じとは限りません。

文字コードは、文字をコンピューターが扱うデータへ対応付ける方法です。UTF-8やShift_JISなどがあり、作成側と読み取り側で解釈がずれると、日本語が別の文字として表示されることがあります。日本語の業務データでは、Windows系のCP932がShift_JISと案内されている例もあります。

CP932と厳密なShift_JISには違いがありますが、最初から名称だけで決めつける必要はありません。出力元の仕様を確認し、読み込み画面にある「日本語」「Shift-JIS」「932」などの選択肢を照合します。プレビューで氏名、記号、旧字体などが正しく見えるかが確認の手がかりになります。

起きていること まず疑う点 最初の対処
日本語が読めない文字になる 文字コードの解釈 元ファイルを別の指定で取り込む
一行の値が一つの列に入る 区切り文字 カンマやタブの設定を確認
コードの先頭のゼロが消える 数値への自動変換 対象列を文字列として取り込む
番号が日付のようになる データ型の自動判定 元データと列の型を確認
文字が「?」に置き換わった 以前の変換や保存 未加工の原本や再出力を確認

文字化けと、数値や日付への自動変換は別の問題です。文字コードを直して日本語が読めても、コードや日付の値まで正しいとは限りません。表示を直す作業と、データの中身を確かめる作業を続けて行う必要があります。

最初に元ファイルを残し、出力条件を確かめる

文字化けした画面のまま保存すると、元の内容を変えてしまうおそれがあります。まず閉じるときに上書きしないよう注意し、受け取ったCSVをそのまま保管してください。作業はコピーか、新しいExcelブックへの取り込みで進めます。

外付け記憶装置を机の引き出しにしまう手元
元ファイルを残してから作業する

システムの出力画面や説明書に、文字コード、区切り文字、BOMの有無の設定がないか確認します。BOMは、ファイルの先頭に置かれる識別用のデータです。UTF-8では読み取り側が形式を判断する助けになる場合がありますが、すべての取り込み先が同じ扱いをするわけではありません。

Microsoftの案内では、BOM付きのUTF-8 CSVはExcelで通常の方法で開けると説明されています。ただし、受領するCSVがすべてその形式とは限りません。ダブルクリックでうまく開けないなら、ファイルを書き換える前に、文字コードを指定できる取り込み機能を使う方が状況を確かめやすくなります。

出力元の担当者へ聞けるなら、「Excelで文字化けする」だけでなく、「文字コードと区切り文字を知りたい」と伝えます。送られたファイルを別アプリで保存し直す作業を重ねるより、出力条件をそろえた方が、次回以降も同じ方法で扱えます。

文字化けを直す基本手順(1. 原本保管、2. 条件確認、3. 取り込み、4. 値の点検、5. 別名保存)
原本を残して設定を選び、読み込み後の値まで確かめます。

Excelでは開く代わりに取り込み機能を使う

ここでは、デスクトップ版Excelの「テキスト/CSVから」の取り込みを例にします。画面の名称や使える機能は、OSやExcelの版によって異なります。該当項目が見つからなければ、データの取得やテキストファイルのインポートに関するヘルプを確認してください。

  1. 空のブックを開き、「データ」から「テキスト/CSVから」に進む。
  2. 元のCSVを選び、プレビューを表示する。
  3. 文字コードの欄で、出力元に対応する設定を選ぶ。
  4. 区切り文字を確認し、列が正しく分かれるかを見る。
  5. 必要な列のデータ型を設定してから読み込む。

文字コードの欄には「元のファイル」「ファイルの元の形式」などの名称が使われる場合があります。UTF-8なら「65001」、日本語のWindows系なら「932」などが目印になります。表示名は環境で違うため、数字だけでなく日本語のプレビューも見て判断します。

プレビューが読めないときは、出力元で使われていそうな文字コードを切り替えて比較します。氏名の一部だけで判断せず、見出し、住所、括弧、記号なども確認してください。正しい候補が見つからなければ、推測した設定で保存せず出力元へ確認します。

値が一つの列へまとまる場合は、文字コードと別に区切り文字を確認します。カンマ、タブ、セミコロンなど、ファイルの実際の区切りに合わせます。値の途中にカンマがある項目は、引用符で囲まれるなどのルールが使われるため、単純にカンマだけで分割する操作は避けましょう。

たとえば、備考欄に「東京,大阪の二拠点」と入っているデータでは、文中のカンマまで列の境目にすると、その行だけ項目がずれます。日本語が読めるかに加え、備考のある行、空欄のある行、改行を含む行でも、同じ見出しの下に正しい値が来ているかを確認してください。

先頭のゼロと長い番号は文字列で取り込む

顧客コードの「00125」は、計算に使う数ではなく、五桁の識別番号です。数値として解釈すると「125」になり、元の値と区別できなくなります。電話番号、郵便番号、会員番号なども、数字が並んでいても文字列として扱うべき場合があります。

取り込み画面に「データの変換」がある場合は、読み込み前に対象列の型を「テキスト」に指定します。Power Queryを使う画面では、すでに自動で型を変換した手順が追加されていることがあります。その場合は、元の値から文字列として読めるよう、自動変換の手順を削除または調整してください。

数値になった後で表示形式を文字列に替えても、消えた先頭のゼロや丸められた桁が元どおりになるとは限りません。後から表示用のゼロを足す方法もありますが、正しい桁数がわからなければ修復はできません。値が変わる前の原本から読み直すことが基本です。

読み込み後に見るところ(氏名や住所が正しく読める、列と見出しの対応が正しい、先頭のゼロが残っている、長い番号の全桁が一致する、日付が意図せず変わっていない、件数と合計が元データと合う)
文字が読めるだけで完了にせず、件数や値の形も確認します。

確認用に、先頭がゼロのコード、長い番号、日付に見える文字列を含む行を探しておくと、検査が具体的になります。売上金額のような計算対象は数値、商品コードのような識別情報は文字列と、列の意味に合わせて決めましょう。全列を一律に同じ型にする必要はありません。

保存し直すときは受け取り先の仕様に合わせる

Excelで集計や確認を続けるなら、作業結果をブック形式で別名保存すると、列の型や書式を扱いやすくなります。別のシステムへ渡す必要があるときは、CSVの文字コード、区切り文字、項目順などを、その取り込み先の仕様に合わせます。

「今どきはUTF-8だから」と一律に変換するのは避けてください。受け取り側が別の形式を前提としていたり、BOMを想定していなかったりする場合があります。反対に、出力先の文字コードで扱えない文字が含まれていると、保存時に失われる可能性もあります。

変換したファイルは、保存できたことと、受け取り先で正しく読めることを分けて確認します。

渡す前には少量のテストデータで読み込みを試し、氏名、コード、件数などを照合します。すでに「?」など別の文字として上書き保存され、元の文字情報が失われた場合は、文字コードを切り替えるだけでは復元できません。原本の再取得やシステムからの再出力が必要です。

保存後の確認では、書き出したファイルを、渡す相手と同じ条件で取り込んでみます。自分のブックで正しく見えていても、CSVとして出力する際に条件が変わることがあるためです。件数は見出し行を含むかどうかをそろえ、金額の合計だけでなく、識別コードの値も比較しましょう。

設定を相談するために見本を渡す場合は、架空の氏名やコードを使った少数行でも確認できます。先頭のゼロ、記号、空欄など、問題を再現する特徴を残した見本なら、本番の個人情報をそのまま共有せずに、読み込み条件を話し合えます。

次回のために、出力元の文字コードと、Excelで設定した列の型を短く記録しておくと便利です。担当者が替わっても同じ読み込みができ、毎月の集計で文字化けとゼロ落ちを繰り返すのを防ぎやすくなります。

まとめ

CSVの文字化けでは、まず原本を上書きせずに残し、出力元の文字コードを調べます。Excelでは、ダブルクリックで開く方法にこだわらず、テキスト/CSVの取り込み画面でプレビューを確認してください。

日本語が読めた後も、区切り文字、先頭のゼロ、長い番号、日付、件数を点検します。見た目を直すところから、必要な値が保たれたことを確かめるところまでを一つの手順にすると、業務データを安心して次の作業へ渡せます。

よくある質問

CSVの日本語が文字化けしたら、ファイルは壊れていますか?

文字コードの解釈が合っていないだけなら、元のCSVを適切な設定で読み直して表示できる場合があります。まず上書き保存を避け、元のファイルを残した状態で確認してください。

CSVをUTF-8で保存すれば、どのシステムでも使えますか?

受け取り側が対応する文字コードやBOMの扱いによって異なります。取り込み先の仕様を確認し、少量のデータで読み込みと再出力を試してください。

先頭のゼロが消えたデータも文字コードを変えれば戻りますか?

先頭のゼロが消える問題は、主に数値としての自動変換に関係します。上書きしていない元ファイルから、対象列を文字列として読み直してください。

スポンサーリンク