【Excel】CSVの文字化けを防ぐ開き方|文字コード・区切り・先頭ゼロを確認

【Excel】CSVの文字化けを防ぐ開き方|文字コード・区切り・先頭ゼロを確認
🛡️ 超解決

CSVを開いて日本語が崩れたら、文字を修正して上書きする前に、元ファイルを残して取り込み直します。文字コードの読み違いなら、正しい指定で読める場合があります。ただし、元データ自体がすでに置き換わっている場合は、文字コードの変更だけで復元できません。

CSVの取り込みでは、日本語が読めることに加え、列の区切りとデータ型も確認します。Windows版Excelの「テキストまたはCSVから」を使い、顧客コード00125と金額1200を例に手順を説明します。


ADVERTISEMENT

1. 文字化けと列崩れ・自動変換を分ける

CSVは、文字として保存されたデータを区切り記号で分けたファイルです。日本語を保存した文字コードと、読み込み側の解釈が合わないと文字化けします。一方、1行が全部A列へ入るのは区切りの指定、00125が125になるのは数値への変換を先に調べます。

症状 確認する設定
日本語の名前が読めない 文字コード
項目が1列へまとまる・ずれる 区切り記号と引用符
00125が125になる 列のデータ型
長いIDの末尾が変わる 数値変換前の文字列指定

ダブルクリックが常にShift-JIS固定、UTF-8非対応というわけではありません。MicrosoftはBOM付きUTF-8のCSVを通常の方法で開けると案内しています。ただし、開けたことだけでコードや日付の自動変換まで適切とは限らないため、確認が必要なデータは取り込み機能を使います。

※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. プレビューで文字コードと区切りを合わせる

  1. 受け取ったCSVをそのまま残し、Excelで空のブックを開く。
  2. 「データ」→「テキストまたはCSVから」を選ぶ。環境によっては「データの取得」→「ファイルから」にある。
  3. 対象ファイルを選び、プレビューの「元のファイル」など文字コードの欄を確認する。
  4. 提供元の仕様に合わせてUTF-8や日本語の文字コードを選ぶ。
  5. 区切り記号をカンマなど実データに合わせ、列見出しと数行の内容を見る。

UTF-8なら65001、日本語のWindows向けCSVでは932が選択肢になる場合があります。日本語が崩れているから必ずUTF-8にすればよい、とは限りません。どちらが正しいか不明な場合は出力元の設定や担当者に確認し、氏名などが正しく読めるかを比べます。

最初の行だけで判断せず、漢字を含む名前や備考も見ます。区切りが正しければ「顧客コード」「氏名」「金額」が別の列に並ぶはずです。まだ読み込みを確定せず、続けて型を確認します。

3. コード列を文字列にしてから読み込む

プレビューで「データの変換」を選び、Power Queryエディターで顧客コード列を選択します。列の「データ型」を「テキスト」にします。金額や数量など計算する列までテキストにする必要はなく、それぞれの用途に合わせます。

自動で作られた「変更された型」ステップがすでにコードを数値に変えている場合、その後へテキスト変換を追加するだけでは125を00125へ戻せません。コードを数値へ変換するステップを変更・削除し、元の文字列が残る段階からテキストとして扱います。型の変更で「現在のものを置換」などが選べる場合も、結果の先頭ゼロを必ず確認します。

00125と00126、16桁以上のID、1-1のような品番をサンプルにして、値が変わっていないか比較します。型が整ったら「閉じて読み込む」でシートへ取り込みます。合計を使う金額列は数値であることも確認してください。文字化けの修正と番号の保持は別々の確認です。

CSVの00125,山田,1200を3列へ取り込み、顧客コード00125はテキスト、氏名山田はテキスト、金額1200は数値として保持する例。
日本語と列の分かれ方を確認した後、コードをテキスト、計算する金額を数値として取り込みます。

4. 引用符とカンマを含むデータを確認する

CSVの項目には、備考の文章や桁区切りのカンマが含まれることがあります。たとえば備考が"午前,午後どちらでも可"なら、そのカンマを列の区切りとせず、一つの項目として扱う必要があります。ダブルクォーテーションを削除してから取り込むと、かえって列がずれます。

文字コードを合わせても列数が合わない場合は、区切りがカンマ・タブ・セミコロンのどれかを確認します。名称が.csvでも、出力元によって内容の区切りが違う場合があります。全体の区切り設定を変えるためにWindowsの地域設定まで変更する前に、この取り込みの指定を見直します。

プレビューで正しくても、途中の行だけ備考に改行や引用符が含まれていることがあります。取込後は元の件数、列見出し、備考のある行、最後の行を確認します。行が分かれたり金額が氏名列に入ったりしていれば、そのまま集計を進めず、出力仕様と該当行を調べます。

5. 作業用はExcel形式、提出用は相手の仕様で保存する

取り込んで整えたブックは、まず.xlsxなど必要なExcel形式で保存します。CSVはブックの数式・書式・複数シートをそのまま保存する形式ではありません。作業用ブックと提出用CSVを分けると、もう一度出力したいときに取り込み設定や計算を残せます。

UTF-8を求められているなら「名前を付けて保存」で「CSV UTF-8(コンマ区切り)」を選びます。受け手が別の文字コードやBOMなしを指定している場合は、その要件に合わせます。UTF-8が新しいからといって、すべての相手へ一律に同じ形式で渡すのは適切ではありません。

CSV保存では対象シートも確認します。別シートの集計や説明を含めたい場合は、必要なファイルをそれぞれ用意します。保存時の形式に関する警告を読まずに進めず、作業用の原本を上書きしない名前にしてください。最後に出力したCSVを新しいブックへ取り込み直し、文字・列・型をもう一度照合します。

6. BOMを原因と決めつけず元ファイルを守る

BOMはファイルの先頭にある識別用の情報で、UTF-8を判断する手がかりになります。Excelで通常の方法で開く際に役立つこともあり、必ず除去すべき不要文字ではありません。先頭の見出しだけ一致しない場合も、空白や別の文字が原因のことがあるため、BOMと即断しないでください。

相手のシステムがBOMなしを必要とする場合は、指定に合う出力方法を使い、提出前に受け入れ側で確認します。メモ帳で文字コードを変える場合も、必ず別名のコピーで行います。文字化けした状態で開いてそのまま別の文字コードへ保存すると、読めない文字を保存し直してしまうおそれがあります。

「ANSIへ変えれば直る」という手順も一律には使えません。ANSIが指すコードページは環境に依存し、対応していない文字を失う場合があります。CSVの元データを保ち、読み込み側で正しい文字コードを指定する方法を先に試します。

7. 取り込み結果を照合し、誤変換ならやり直す

完了の目安は日本語が読めることだけではありません。件数、先頭と末尾のコード、長いID、日付のような品番、金額の合計を元データと照合します。行数が一致していても、先頭ゼロが落ちれば照合キーが変わります。番号は先頭数件だけでなく、桁数の異なるものも確認してください。

文字化けや型の設定を間違えたら、元CSVから再度取り込みます。取り込み後の125へ表示形式でゼロを足しても、元が00125だったか000125だったかは分かりません。長いIDの末尾が数値変換で失われた場合も、元の文字列を取り直す必要があります。

クエリで取り込んだ表を使い続ける場合は、更新すると元ファイルと変換手順から再取得されます。シート側だけを手で直しても次の更新で戻ることがあるため、必要な修正は変換手順または元データで管理します。受け取った原本、作業用ブック、提出用CSVを分けておけば、修正と再出力をやり直せます。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】