「CSVファイルをダブルクリックしたら、日本語が読めない記号に変わっていた」という経験はないでしょうか。
ネットショップの売上データや会計ソフトの明細など、CSVは仕事でよく受け取るファイル形式です。
それだけに、開いた瞬間に文字化けしていると作業が止まってしまいます。
文字化けの主な原因は、CSVの「文字コード」とExcelが想定する文字コードの違いです。
データそのものが壊れているわけではないため、正しい開き方を選べば元の文字で表示できます。
一方で、慌てて上書き保存すると元に戻しにくくなるため注意が必要です。
この記事では、CSVが文字化けする原因を3つに分け、それぞれの対処のやり方を紹介します。
UTF-8のCSVを開くとき、Excelで保存したCSVをほかのシステムに渡すときの順に確認します。
あわせて、文字は正しいのに先頭の0が消えるといった、開き方の違いで起きるトラブルも取り上げます。
なお、CSVではなく普段使っているExcelファイル自体が開かない場合は、別の原因が考えられます。
ファイルが開けない・破損したときの対処法は別記事でまとめているので、あわせて確認してみてください。
ExcelでCSVが文字化けする原因とは?文字コードの違いと症状の見分け方
CSVとは、データをカンマで区切って並べただけのシンプルなテキストファイルです。
多くのシステムやアプリが読み書きできるため、データの受け渡しによく使われます。
ただし、CSVには「どの文字コードで書かれたか」という情報が含まれていないことがほとんどです。
文字コードとは?CSVが文字化けする仕組み
文字コードとは、文字をコンピューターが扱う数値に置き換えるための対応表のことです。
日本語のCSVでよく使われるのは、「Shift_JIS」と「UTF-8」の2種類です。
同じ「田」という文字でも、この2つでは割り当てられている数値が異なります。
日本語版のWindowsでは、ExcelはダブルクリックしたCSVをShift_JISとして読むのが基本です。
そのため、UTF-8で書かれたCSVを開くと、別の対応表で読んでしまい文字化けが起きます。
英数字は両方の文字コードで共通のため、日本語の部分だけが化けるのが特徴です。
UTF-8とShift_JISの見分け方|文字化けの症状で判断する
具体例として、UTF-8で書かれた社員名簿のCSVをダブルクリックで開いた画面を見てみます。
| A | B | C | |
|---|---|---|---|
| 1 | 遉セ蜩。逡ェ蜿キ | 豌丞錐 | 驛ィ鄂イ |
| 2 | 1001 | 逕ー荳ュ | 蝟カ讌ュ驛ィ |
| 3 | 1002 | 菴占陸 | 邱丞漁驛ィ |
| 4 | 1003 | 驤エ譛ィ | 邨檎炊驛ィ |
1行目は本来「社員番号」「氏名」「部署」という見出しで、2行目以降に社員のデータが並んでいます。
B2セルの「田中」、C2セルの「営業部」などが、見慣れない漢字と半角カタカナの並びに変わっています。
一方でA列の社員番号は数字のため、文字化けせずに正しく表示されています。
文字化けの見た目によって、どの文字コードの組み合わせで起きたかをある程度判断できます。
| 症状 | 考えられる状態 | 確認する章 |
|---|---|---|
| 「逕ー荳ュ」のような難しい漢字と半角カタカナが混ざる | UTF-8のCSVをShift_JISとして読んでいる | 原因① |
| 取り込み先のシステムで「�」のような記号が並ぶ | Shift_JISのCSVをUTF-8として読んでいる | 原因② |
| 一部の文字だけ「?」に置き換わる | Shift_JISにない文字を含んだまま保存した | 原因② |
| 文字は正しいが、先頭の0が消えている | Excelがデータを数値に自動変換した | 原因③ |
Excelで開いたときに最も多いのは、表の1行目の「難しい漢字と半角カタカナ」の症状です。
この場合は、ファイルがUTF-8で書かれている可能性が高いと考えられます。
ダブルクリックで開く前に確認したい開き方のポイント
実務では、CSVの出どころから文字コードの当たりをつけておくと対処が早くなります。
Webサービスやクラウドから書き出したCSVは、UTF-8で保存されていることが多い傾向があります。
一方、古くからある業務システムやWindows向けのソフトでは、Shift_JISが使われることが多いです。
初心者がつまずきやすいのは、文字化けしたまま上書き保存してしまう点です。
化けた状態で保存すると、化けた文字がそのままファイルに書き込まれ、元に戻すのが難しくなります。
文字化けに気づいたら保存せずに閉じ、念のため元のCSVのコピーを取ってから作業するのが安全です。
GoogleスプレッドシートからダウンロードしたCSVも、UTF-8で書き出されるため化けやすいファイルの一つです。
ExcelとGoogleスプレッドシートの違いは別記事で整理しているので、使い分けの参考にしてみてください。
文字化けの原因①|UTF-8のCSVをダブルクリックで開いている
最も多い原因は、UTF-8で書かれたCSVをダブルクリックでそのまま開いているケースです。
ExcelはファイルがUTF-8だと気づかないまま、Shift_JISとして読み込んでしまいます。
その結果、前の章の社員名簿のように日本語の部分だけが化けて表示されます。
UTF-8のファイルには、先頭に「BOM」という目印が付いているものと付いていないものがあります。
BOMとは、「このファイルはUTF-8です」と知らせるために先頭に付ける数バイトのデータです。
ExcelはBOM付きなら正しく判別できますが、BOMなしのUTF-8はShift_JISとして読んでしまいます。
「テキストまたはCSVから」で文字コードを指定する開き方
ダブルクリックの代わりに、Excelの取り込み機能を使って文字コードを指定する方法があります。
この方法はCSVファイル自体を書き換えないため、元のデータを安全に残したまま作業できます。
1. 新しいブックを開き、「データ」タブの「データの取得と変換」グループを表示する
2. 「テキストまたはCSVから」をクリックし、文字化けしたCSVを選んで「インポート」を押す
3. プレビュー画面の「元のファイル」の一覧から「65001: Unicode (UTF-8)」を選ぶ
4. プレビューの日本語が正しく表示されたことを確認し、「読み込み」をクリックする
先ほどの社員名簿なら、手順3の時点でプレビューの見出しが「社員番号」「氏名」「部署」に変わります。
読み込みを終えると新しいシートが追加され、「田中」「営業部」などが正しく表示されます。
この取り込み機能はPower Query(パワークエリ)と呼ばれ、Excel 2016以降で使えます。
初心者がつまずきやすいのは、「元のファイル」の一覧に多くの文字コードが並んでいて迷う点です。
UTF-8は「65001」、Shift_JISは「932: 日本語 (シフト JIS)」という番号付きで表示されます。
番号を目印に探すと、目的の文字コードを見つけやすくなります。
メモ帳でUTF-8のBOM付きに保存し直すやり方
同じCSVをこの先も何度もダブルクリックで開きたい場合は、ファイル自体にBOMを付ける方法もあります。
Windowsに標準で入っているメモ帳を使えば、次の手順で保存し直せます。
1. CSVファイルを右クリックし、「プログラムから開く」から「メモ帳」を選ぶ
2. 「ファイル」メニューの「名前を付けて保存」を選ぶ
3. 画面下部の「エンコード」の一覧から、BOM付きのUTF-8を選ぶ
4. ファイル名の末尾が「.csv」のままになっていることを確認して保存する
保存し直したCSVは、ダブルクリックで開いても日本語が正しく表示されるようになります。
ただし、この方法はCSVファイルの中身を書き換えます。
取り込み先のシステムに戻す予定があるファイルは、元のCSVを別に残しておくのが安全です。
実務で使い分けるなら、一度確認するだけのCSVは「テキストまたはCSVから」で開くのが手軽です。
一方、毎回同じ形式で届くCSVを複数人で開く場合は、BOM付きで保存し直すほうが手間を減らせます。
「テキストまたはCSVから」で読み込んだデータは、テーブルという形式でシートに配置されます。
テーブル機能の使い方は別記事で紹介しているので、取り込んだ後の集計や並べ替えに役立ててみてください。
文字化けの原因②|Excelで保存したCSVがほかのシステムで文字化けする
反対に、Excelで作ったCSVをほかのシステムに取り込んだときに文字化けすることもあります。
Excelの保存形式「CSV (コンマ区切り)」は、日本語版ではShift_JISで保存されます。
取り込み先がUTF-8を前提にしている場合、日本語が「�」のような記号の列に変わってしまいます。
たとえば、ネットショップの商品登録や顧客リストの一括登録などでこの症状がよく起きます。
取り込み画面で「文字コードが正しくありません」といったエラーが出ることもあります。
こうした場面では、Excelで保存するときに文字コードを選び直す必要があります。
「CSV UTF-8 (コンマ区切り)」で保存するやり方
ExcelでUTF-8のCSVを作るには、保存時にファイルの種類を切り替えます。
1. CSVにしたいシートを表示した状態で、「ファイル」タブの「名前を付けて保存」を選ぶ
2. 保存先を選び、ファイルの種類の一覧を開く
3. 「CSV UTF-8 (コンマ区切り)」を選んで保存する
2つのCSV形式の違いを整理すると、次のようになります。
| ファイルの種類 | 保存される文字コード | 主な取り込み先の例 |
|---|---|---|
| CSV (コンマ区切り) | Shift_JIS | Shift_JISを指定している会計ソフトや業務システム |
| CSV UTF-8 (コンマ区切り) | UTF-8(BOM付き) | UTF-8を指定しているWebサービスやクラウドのシステム |
どちらもファイル名の末尾は同じ「.csv」になるため、見た目だけでは区別できません。
そのため、保存するときに一覧でどちらを選んだかを意識しておくことが大切です。
初心者がつまずきやすいのは、CSVで保存すると表示中のシート1枚だけが保存される点です。
数式は計算結果の値に、書式は失われた状態で保存されます。
元の表はExcelブック形式で残しておき、CSVは提出用のコピーとして作ると安心です。
取り込み先が指定する文字コードを確認する
どちらの形式で保存するかは、取り込み先のシステムが決めた文字コードに合わせます。
多くのサービスでは、CSVの取り込み手順を説明するページに文字コードが書かれています。
「文字コード:UTF-8」「Shift_JIS形式で保存してください」といった記載を探してみてください。
Shift_JISを選ぶときに注意したいのは、Shift_JISでは表せない文字がある点です。
たとえば「吉田」の「吉」の上が「土」になった異体字(通称:つちよし)や絵文字は、「CSV (コンマ区切り)」で保存すると「?」に置き換わります。
取引先の社名や人名にこうした文字が含まれる場合は、保存後にCSVを開いて確認が必要です。
また、UTF-8を指定するシステムの中には、BOM付きのファイルを正しく読めないものもあります。
この場合、1列目の見出しが認識されず「項目名が一致しません」といったエラーになることがあります。
メモ帳で開き、「エンコード」で「UTF-8」を選んで保存し直すと、BOMなしのUTF-8にできます。
実務では、一度うまく取り込めた手順を社内でメモに残しておくと、担当者が変わっても迷いません。
「保存形式」「文字コード」「BOMの有無」の3点を記録しておくのがおすすめです。
原因③|CSVが文字化けしないのに先頭の0が消える・日付に変わるときの開き方
文字化けは解消しても、CSVの中身がExcelによって別の値に変わってしまうことがあります。
Excelはダブルクリックで開いたCSVを読み込むとき、数字や日付らしい値を自動で変換するためです。
社員番号や郵便番号、商品コードを扱うCSVでは特に起きやすいトラブルです。
代表的な変換の例を整理すると、次のようになります。
| CSVの元の値 | ダブルクリックで開いたときの表示 | 起きている変換 |
|---|---|---|
| 00123 | 123 | 先頭の0が削除され、数値になる |
| 0600001 | 600001 | 郵便番号の先頭の0が削除される |
| 1-2 | 1月2日 | 日付に変換される |
| 1234567890123456 | 1.23457E+15 | 指数表示になり、16桁目が0になる |
Excelが数値として正確に扱えるのは15桁までのため、16桁以上の番号は末尾が0に置き換わります。
いずれも一度変換されて保存されると、元の値は失われてしまいます。
文字コードと一緒に「データ型を検出しない」を指定する開き方
先頭の0を残したい場合も、「テキストまたはCSVから」の取り込み機能が役立ちます。
プレビュー画面には「元のファイル」の横に「データ型検出」という項目があります。
ここで「データ型を検出しない」を選んで読み込むと、すべての値が文字列のまま取り込まれます。
この方法なら「00123」は「00123」のまま、「1-2」も日付にならずに表示されます。
文字コードの指定と同じ画面で設定できるため、文字化けと一緒にまとめて対処できます。
ただし金額などの数値も文字列になるため、集計に使う列は読み込み後に数値へ戻す必要があります。
自動データ変換の設定で先頭の0を残す開き方
Microsoft 365とExcel 2024では、ダブルクリックで開くときの自動変換そのものを止められます。
1. 「ファイル」タブの「オプション」を開き、「データ」を選ぶ
2. 「自動データ変換」の中にある「先頭のゼロを削除して数値に変換する」のチェックを外す
3. 「OK」をクリックして画面を閉じる
設定後は、CSVをダブルクリックで開いても「00123」の先頭の0が残るようになります。
同じ場所には「連続する文字と数字を日付に変換する」などの項目もあり、必要に応じて外せます。
この設定はパソコンごとに保存されるため、別のパソコンでは改めて設定が必要です。
実務でチームがCSVを扱う場合は、全員でこの設定をそろえておくと安心です。
「自分のパソコンでだけ0が消える」といった食い違いを防げます。
開き方を間違えて消えた0をTEXT関数で戻す具体例
すでに先頭の0が消えてしまった場合は、TEXT関数で桁数をそろえて0を補う方法があります。
具体例として、5桁の社員番号が入ったCSVを開いて、A列の先頭の0が消えた表を考えます。
| A | B | |
|---|---|---|
| 1 | 社員番号 | 氏名 |
| 2 | 123 | 山田 |
| 3 | 45 | 佐藤 |
| 4 | 7 | 鈴木 |
本来の社員番号は「00123」「00045」「00007」の5桁ですが、A列では0が削除されています。
C2セルに次の数式を入力し、C4セルまでコピーします。
=TEXT(A2,”00000″)
C2セルには「00123」と表示されます。
A2セルの数値123を、5桁に満たない分だけ先頭を0で埋めた文字列に変換する数式です。
同じようにC3セルには「00045」、C4セルには「00007」が表示されます。
初心者がつまずきやすいのは、この方法が「元の桁数が分かっている場合」にしか使えない点です。
桁数がばらばらの商品コードや、16桁以上で末尾が0になった番号は、数式では元に戻せません。
その場合は、元のCSVを「データ型を検出しない」で読み込み直すのが確実です。
TEXT関数は、日付や金額の表示形式を整えるときにも使える便利な関数です。
TEXT関数の使い方は別記事で詳しく紹介しているので、あわせて確認してみてください。
CSVの文字化け対処法まとめ|開く前に文字コードを確かめる
ExcelでCSVが文字化けする原因は、ほとんどがCSVの文字コードとExcelの読み方の食い違いです。
UTF-8のCSVをダブルクリックで開いた場合と、Shift_JISのCSVをほかのシステムに渡した場合に分けられます。
データそのものは壊れていないことが多いため、慌てずに開き方を見直すことが大切です。
状況別の対処法をまとめると、次のようになります。
1. Excelで開いて文字化けしたら、上書き保存せずにいったん閉じる
2. 「データ」タブの「テキストまたはCSVから」で、「65001: Unicode (UTF-8)」を選んで読み込む
3. 何度も開くCSVは、メモ帳でBOM付きのUTF-8に保存し直す
4. ほかのシステムに渡すCSVは、取り込み先が指定する文字コードに合わせて保存形式を選ぶ
5. 先頭の0を残したい場合は、「データ型を検出しない」で読み込むか、自動データ変換の設定を見直す
この順で確認すれば、多くのCSVは元の文字のまま扱えるようになります。
特に1の「上書き保存しない」は、データを守るうえで最も重要なポイントです。
文字化けに気づいたら、まずは元のファイルをそのまま残しておくことを意識してみてください。
CSVの扱いに慣れてきたら、Excelのほかの機能も確認しておくと作業の幅が広がります。
Excelでできること一覧では基本機能を通しで紹介しているので、次の一歩として役立ちます。





