※本ページにはプロモーション(広告)が含まれています
Googleスプレッドシートに日本語のCSVファイルをインポートしたら「�����」のような文字化けが発生して困った経験はありませんか。せっかく作成した顧客データや売上データが読めない状態になると、業務が完全にストップしてしまいます。この文字化け問題は、ファイルの文字コード(エンコーディング)の不一致が原因で発生しており、適切な対処法を知っていれば数分で解決できる問題です。本記事では、Googleスプレッドシートで日本語CSVをインポートした際に発生する文字化けの根本原因から、UTF-8への変換手順、IMPORTDATA関数の挙動、IMPORTRANGEとの違いまで、現場で役立つ実践的な解決法を徹底解説します。Excelで作成したCSVが文字化けする理由や、Windowsデフォルト設定の落とし穴、BOM付きUTF-8の扱い、改行コード(CRLF/LF)の影響まで、初心者にもわかりやすく解説していきます。
この記事を読むとわかること
- GoogleスプレッドシートでCSV文字化けが発生する根本原因
- Shift_JISとUTF-8の文字コードの違いと見分け方
- ExcelでCSVを保存する際の正しいエンコーディング設定
- 文字化けしたCSVをUTF-8に変換する具体的な手順(5つの方法)
- IMPORTDATA関数とIMPORTRANGE関数の使い分け
- BOM付きUTF-8と改行コード(CRLF/LF)の影響
- Windowsデフォルト設定が引き起こす文字化けの回避策
- 大量CSVを扱う際の自動化テクニックとトラブルシューティング
そもそもなぜCSV文字化けが起こるのか?文字コードの基礎
Googleスプレッドシートに日本語CSVをインポートして文字化けが発生する最大の理由は、「ファイルを作成した側」と「読み込む側」で使用している文字コード(エンコーディング)が異なるためです。文字コードとは、コンピュータ上で文字を扱うための番号付け規則のことで、日本語環境では複数の規格が混在しているため、規格の違いが文字化けという形で表面化します。
Googleスプレッドシートは原則として「UTF-8」という文字コードを前提に動作します。一方、日本のWindows環境で作られたCSVファイルは、多くの場合「Shift_JIS(CP932)」という別の文字コードで保存されています。この不一致が文字化けの根本原因です。
主要な日本語文字コードの種類
日本語を扱う際に登場する文字コードは複数あり、それぞれ異なる用途と特性を持っています。これらの違いを理解することが、文字化け解決の第一歩です。
- UTF-8:世界中の文字を表現できる国際標準。Web・Google製品・Mac標準。
- Shift_JIS:1980年代に登場した日本語専用規格。Windows・古いExcelで標準。
- CP932(Microsoftコードページ932):Shift_JISの拡張版でWindowsの実態。
- EUC-JP:UNIX系で使われる日本語規格。現在はあまり使われない。
- UTF-16:日本語1文字を2バイトで表現。Windows内部処理で使用。
- BOM付きUTF-8:ファイル先頭に識別子を付けたUTF-8。Excel互換用。
これらの文字コードは見た目は同じ「日本語」を表現していますが、内部のバイト列が全く異なります。そのため、Shift_JISで保存されたCSVをUTF-8として読み込むと、コンピュータは「これは日本語ではない別の文字」と解釈してしまい、結果として「�」や意味不明な記号の羅列として表示されてしまうのです。
文字化けの典型的なパターンと見え方
文字化けの「見え方」を観察すると、原因のあたりを付けることができます。経験を積めば、画面の見た目だけで原因の文字コードが推測できるようになります。
- 「�」が連続して表示される:UTF-8として解釈できないバイト列が混入している(典型的にはShift_JISをUTF-8で開いた状態)
- 意味のないカタカナや記号の羅列:UTF-8をShift_JISで開いた逆パターン
- 一部の文字だけが化ける:機種依存文字(①②③、㈱、髙、﨑など)の問題
- 先頭に「」が表示される:BOM付きUTF-8をBOM非対応ツールで読み込んだ場合

Googleスプレッドシートで文字化けする8つの主な原因
CSVインポート時の文字化けには、いくつかの典型的な原因があります。原因を特定することで、最適な解決方法を選べるようになります。ここでは、現場で実際に遭遇する8つの主要パターンを詳しく解説します。
原因1:Shift_JISで保存されたCSVをそのままインポートしている
最も多い原因がこれです。Excelで「CSV(コンマ区切り)」として保存すると、Windows環境では自動的にShift_JIS(CP932)で保存されます。これをGoogleスプレッドシートにアップロードすると、UTF-8として読み込もうとして失敗し、文字化けが発生します。Excel側で意図的にUTF-8を選ばない限り、ほぼ確実にShift_JISになっていると考えてください。
原因2:Excel保存時にエンコーディングを意識していない
Excel 2016以降では「CSV UTF-8(コンマ区切り)」という保存形式が追加されましたが、デフォルトでは選ばれていません。多くのユーザーは単に「CSV」を選んでしまい、結果としてShift_JISで保存されてしまいます。この時点では何も問題は起きませんが、Googleスプレッドシートに持ち込んだ瞬間に文字化けが発生します。
原因3:Windowsのシステムロケール設定の影響
Windowsはシステム全体の言語設定(システムロケール)に基づいて、テキストファイルの既定エンコーディングを決定します。日本語環境のWindowsではShift_JIS(CP932)が既定となっており、多くのアプリケーションがこれに従ってファイルを保存します。この仕様自体が、Google製品との相性を悪くしている根本原因の一つです。
原因4:IMPORTDATA関数の自動判定が失敗している
GoogleスプレッドシートのIMPORTDATA関数は、URL先のCSVファイルを自動取得してシートに展開する便利な関数ですが、文字コード判定は厳密ではありません。WebサーバーがContent-Typeヘッダーで文字コードを明示していない場合、IMPORTDATAはUTF-8と仮定してデコードします。サーバーがShift_JISで配信しているCSVをこの関数で読み込むと、文字化けが起こります。
原因5:BOM(Byte Order Mark)付きUTF-8の混乱
BOMとは、ファイル先頭に付与される「これはUTF-8ですよ」という目印のバイト列です。Excelが「CSV UTF-8」として保存するファイルは、このBOM付きUTF-8形式です。BOMがあると一部のツールでは1列目の先頭セルに余計な文字が混入したり、ヘッダーの認識に失敗したりすることがあります。
原因6:改行コードの不一致(CRLF / LF / CR)
テキストファイルの改行コードはOSごとに異なります。Windowsは「CRLF(\r\n)」、Mac/Linuxは「LF(\n)」、古いMacOSは「CR(\r)」を使用します。Googleスプレッドシートは通常これらを吸収しますが、改行コードと文字コードの組み合わせ次第では、最終行の処理に不具合が発生することがあります。
原因7:機種依存文字や特殊記号の混入
「①②③」などの丸数字、「㈱」「㈲」などの全角記号、「髙」「﨑」などの旧字体は、Shift_JISでは表現できるものの、UTF-8への変換時に正しく対応できないケースがあります。これらの機種依存文字が含まれるCSVは、エンコーディング変換時に欠落することがあります。
原因8:CSVファイル自体が壊れている・複数エンコーディングの混在
複数のシステムから生成されたCSVを結合したり、エディタで何度も保存し直したりすると、ファイル内に複数の文字コードが混在することがあります。この場合は単純な変換では解決せず、ファイルを分割して個別に修復する必要があります。
文字化けCSVをUTF-8に変換する5つの解決法
文字化けの原因がわかったら、具体的な解決法を実行していきましょう。ここでは難易度別に5つの方法を紹介します。自分の環境やCSVの規模に合った方法を選んでください。
解決法1:Excelで「CSV UTF-8」として保存し直す(最も簡単)
Excel 2016以降を使っている方に最もおすすめの方法です。元のCSVファイルをExcelで開き直し、「名前を付けて保存」で「CSV UTF-8(コンマ区切り)」形式を選んで保存し直すだけで、ほとんどのケースが解決します。
- 文字化けしているCSVをExcelで開く(Excel側では正常に表示されるはず)
- 「ファイル」→「名前を付けて保存」を選択
- 「ファイルの種類」で「CSV UTF-8(コンマ区切り)(*.csv)」を選ぶ
- 新しいファイル名で保存(元ファイルを上書きしないのが安全)
- 保存したファイルをGoogleスプレッドシートにインポート
注意点として、Excelで開く際にも文字化けする場合があります。その場合は次の「データ取得」機能を使ってください。
解決法2:Excelの「データの取得」機能で文字コード指定して読み込む
Excel側でも既に文字化けしている場合、通常の「開く」ではなく「データの取得」機能を使うと、文字コードを手動で指定できます。
- Excelの「データ」タブを開く
- 「テキストまたはCSVから」を選択
- 対象CSVファイルを選ぶ
- プレビュー画面で「ファイル原点(文字コード)」を「Shift_JIS」「UTF-8」など試行錯誤で切り替える
- 正しく表示されたら「読み込み」をクリック
- その後「CSV UTF-8」で保存し直す
解決法3:メモ帳・テキストエディタで文字コード変換
Windows標準のメモ帳でも文字コード変換が可能です。シンプルなCSVであればこの方法が最も手軽です。
- メモ帳でCSVファイルを開く(文字化けして見える場合もそのままでOK)
- 「ファイル」→「名前を付けて保存」を選択
- 「文字コード」のドロップダウンで「UTF-8」または「UTF-8(BOM付き)」を選択
- ファイル名を変えて保存
より高機能なエディタ(VSCode、サクラエディタ、秀丸など)を使えば、変換前の文字コードを明示して読み込み、別の文字コードで書き出すといった精密な操作が可能です。
解決法4:Googleスプレッドシートのインポート設定で文字コードを指定
実はGoogleスプレッドシート自体に、インポート時に文字コードを指定する機能があります。ただし、UIから直接Shift_JISを選ぶことはできず、間接的なテクニックが必要です。
- 新規のGoogleスプレッドシートを作成
- 「ファイル」→「インポート」を選択
- 「アップロード」タブからCSVを選択
- 「インポートの場所」「区切り文字の種類」を選んで「データをインポート」
Googleスプレッドシートは自動的に文字コードを判定しますが、Shift_JISの認識精度はあまり高くありません。確実に解決したい場合は事前にUTF-8変換するのが安全です。
解決法5:オンラインの文字コード変換ツール・コマンドラインを使う
大量のCSVを一括変換したい場合や、Excelすら持っていない場合は、オンライン変換ツールやコマンドラインツールが便利です。
- オンライン変換サイト:「CSV 文字コード 変換」で検索すると複数のツールが見つかります。ただし機密データは絶対にアップロードしないこと。
- Windowsのコマンドプロンプト:
powershell -Command "Get-Content input.csv -Encoding Default | Set-Content output.csv -Encoding UTF8"でShift_JIS→UTF-8変換が可能。 - Macのターミナル:
iconv -f SHIFT_JIS -t UTF-8 input.csv > output.csvでワンライナー変換が可能。 - nkfコマンド:Linux/Mac用の日本語文字コード変換専用ツール。最強の互換性を持つ。
各解決法のメリット・デメリット比較
どの方法を選ぶべきか悩む方のために、5つの解決法を比較した一覧表を用意しました。自分の環境とスキルレベルに合った方法を選択してください。
| 解決法 | 難易度 | 処理速度 | 大量処理 | おすすめ用途 |
|---|---|---|---|---|
| Excel「CSV UTF-8」保存 | ★☆☆ | 速い | △ | 単発の小規模CSV |
| Excelデータ取得機能 | ★★☆ | 普通 | △ | 既に文字化けしたCSV |
| メモ帳で再保存 | ★☆☆ | 速い | × | 超シンプルなCSV |
| Googleシート直接インポート | ★★☆ | 速い | ○ | クラウド完結したい場合 |
| コマンドライン(iconv等) | ★★★ | 最速 | ◎ | 大量自動処理 |
IMPORTDATA関数とIMPORTRANGE関数の使い分け
GoogleスプレッドシートでCSVを扱う際、ファイル直接インポート以外にも関数を使う方法があります。それぞれ用途と挙動が異なるため、適切に使い分けましょう。
IMPORTDATA関数:WebURL上のCSVを自動取得
IMPORTDATA関数は、Web上に公開されているCSV/TSVファイルのURLを指定して、その内容をシートに展開する関数です。書式は=IMPORTDATA("URL")とシンプルです。
- 用途:気象データ、株価データ、政府統計、社内Webサーバー上のCSV等
- 長所:URL指定だけで自動更新される、APIキー不要
- 短所:文字コードはUTF-8前提(Shift_JISのURLは文字化け)、認証付きURLは不可
- 文字化け回避策:URL側がUTF-8で配信されているか確認、難しければファイルをダウンロードしてから手動インポート
IMPORTRANGE関数:別のGoogleスプレッドシートを参照
IMPORTRANGE関数は、別のGoogleスプレッドシートの範囲を現在のシートに反映する関数です。書式は=IMPORTRANGE("スプレッドシートURL","シート名!範囲")です。
- 用途:複数シート間のデータ連携、マスターデータの一元管理
- 長所:既にGoogleスプレッドシート上にあるデータを安全に連携、文字化けの心配なし
- 短所:参照元のスプレッドシートが必要、CSV直接読み込みは不可
- 使い方のコツ:初回は権限承認が必要なので、参照先セルをクリックして「アクセスを許可」をクリックする
文字化け回避フローチャート
CSVデータの活用方法に応じて、どの関数・機能を使うべきかをまとめます。
- ローカルファイルを1回だけ取り込みたい → 「ファイル」→「インポート」
- Web上のCSVを定期的に取り込みたい(UTF-8) → IMPORTDATA関数
- Web上のCSVが文字化けする → 一度ダウンロード→UTF-8変換→アップロード
- 別シートのデータを反映したい → IMPORTRANGE関数
- 大量CSVの一括処理 → Google Apps Script で自動化
WindowsデフォルトとMacでのCSV取り扱いの違い
同じExcelでCSVを保存しても、OSやバージョンによって挙動が異なります。チーム作業でWindows・Macが混在する場合は特に注意が必要です。
Windowsの場合
Windowsの日本語環境では、システムロケールがShift_JIS(CP932)に設定されているため、ほとんどのテキスト操作がこの文字コードを基準に動作します。Excelで「CSV」を選ぶとShift_JISで保存され、メモ帳でも既定はShift_JISです。Windows 10以降では「メモ帳のデフォルトをUTF-8に変更」する設定が追加されましたが、知らないまま使っているユーザーが大多数です。
Macの場合
Macは標準でUTF-8を使用するため、テキストエディットや標準のCSVツールで作成したファイルはほとんどがUTF-8です。そのため、MacユーザーがGoogleスプレッドシートにアップロードしても文字化けが起きにくい構造になっています。ただし、Excel for Macでも「CSV」を選ぶとShift_JISで保存される場合があるので注意が必要です。
クロスプラットフォームのトラブル例
- WindowsでShift_JIS保存→Macで開くと文字化け→Googleに上げる前から問題発生
- MacでUTF-8保存→Windowsの古いExcelで開くと文字化け→修正したファイルがUTF-8のままGoogleで正常表示
- チームメンバーがWindowsとMacを混在→ファイル交換のたびに文字化け→ルール統一が必要
BOM付きUTF-8と改行コードの落とし穴
UTF-8への変換が完了しても、まだ細かい問題が残っていることがあります。BOMと改行コードの問題です。これらは目に見えないため、原因特定が難しい厄介な要素です。
BOM付きUTF-8とは何か
BOM(Byte Order Mark)は、ファイルの先頭3バイト(0xEF 0xBB 0xBF)に付与される識別子で、「このファイルはUTF-8ですよ」とアプリに教える役割があります。Excelは「CSV UTF-8」保存時に必ずBOMを付けますが、世界的に見るとBOMなしUTF-8が主流です。
- BOMありUTF-8のメリット:Excelが間違いなくUTF-8として開く
- BOMありUTF-8のデメリット:一部のスクリプト・APIで先頭セルに余計な文字が混入する
- Googleスプレッドシートの挙動:BOMの有無どちらでも正しく解釈してくれるため、基本的に問題なし
- API連携の場合:BOMなしを推奨。BOMが原因でJSONパースに失敗するケースがある
改行コード CRLF・LF・CR の違い
改行コードは目に見えないため気付かれにくいですが、システム間連携では重要な要素です。
- CRLF(\r\n):Windowsの標準。テキストファイルの改行は2バイト消費。
- LF(\n):Mac・Linux・Webの標準。1バイトで効率的。
- CR(\r):旧MacOS(OS9以前)の標準。現在はほぼ使われない。
Googleスプレッドシートはどの改行コードも吸収して正しく処理してくれますが、CSVを他のシステム(特に古いシステム)に連携する際は、改行コードを統一しておくとトラブルを避けられます。テキストエディタの設定で改行コードを変換できます。
大量CSVを扱う際の自動化テクニック
毎日大量のCSVを処理する業務では、手動変換に限界があります。Google Apps Scriptを活用した自動化や、PowerShell・Pythonによる一括処理が有効です。
Google Apps Script による自動化
Googleスプレッドシートに付属するGoogle Apps Script(GAS)を使えば、Google Driveにアップロードされたファイルを自動的に処理できます。例えば、特定フォルダにCSVが置かれたら自動でスプレッドシートに変換するスクリプトが組めます。
- トリガー機能で定期実行可能(5分毎、毎時、毎日)
- FileApp・SpreadsheetApp・UrlFetchAppなどのサービスが利用可能
- Shift_JIS→UTF-8変換もByte配列操作で実装可能
- Gmail通知と連携してエラー時に自動アラート
PowerShell・Python による一括変換
ローカル環境で大量CSVを変換するなら、スクリプト言語が最強です。フォルダ内の全CSVを一括変換する1行スクリプトも書けます。
- PowerShell:
Get-ChildItem *.csv | ForEach-Object { … }でフォルダ一括処理 - Python pandas:
pd.read_csv(file, encoding='shift_jis').to_csv(out, encoding='utf-8')でデータ整形も同時実施 - Node.js iconv-lite:JavaScript環境での文字コード変換ライブラリ
- nkf:Linux・Macの古典ツール、最強の互換性
🛒 関連商品をAmazonでチェック
よくある質問(FAQ)
Q1:Excelで保存した日本語CSVをGoogleスプレッドシートで開くと必ず文字化けします。なぜですか?
A:ExcelはWindows環境ではデフォルトでShift_JIS(CP932)で保存しますが、GoogleスプレッドシートはUTF-8を前提として動作するためです。文字コードの不一致が原因なので、Excel側で「CSV UTF-8(コンマ区切り)」形式を選んで保存し直せば解決します。Excel 2016以降であればこの保存形式が利用できます。
Q2:BOM付きUTF-8とBOMなしUTF-8はどちらを選ぶべきですか?
A:Googleスプレッドシート単体で使うならどちらでも問題ありません。ExcelとGoogleの両方で開きたい場合はBOM付きが安全です。一方、API連携やJavaScriptでパースする予定があるならBOMなしを推奨します。BOMが原因でJSON.parseが失敗するなど、見えにくい不具合の原因になることがあります。
Q3:IMPORTDATA関数で外部CSVを取り込んだら文字化けします。どうすればいいですか?
A:IMPORTDATA関数は文字コード判定が厳密ではないため、Shift_JISのCSVは文字化けします。対処法は3つあります。1つ目はCSV配信元にUTF-8で配信してもらうよう依頼。2つ目はCSVを一度ダウンロードしてUTF-8変換後、Googleドライブにアップロードして「ファイル→インポート」で取り込む。3つ目はGoogle Apps Scriptで取得時に文字コード変換を行うスクリプトを書く方法です。
Q4:機種依存文字(①②③、㈱、髙、﨑など)が変換後に消えてしまいます。
A:Shift_JISの機種依存文字はUTF-8にも対応するコードポイントが存在することが多いですが、変換ツールによっては失敗することがあります。解決策として、Excelの「CSV UTF-8」保存ではほぼ全ての日本語が保持されます。コマンドラインのiconvで失敗する場合は-cオプション(変換できない文字をスキップ)ではなく、Python pandasのerrors='replace'等を使うことで、機種依存文字も含めて変換できます。
Q5:Googleスプレッドシートのインポート画面で「文字コード」を選ぶ項目がないのですが?
A:Googleスプレッドシートのインポート画面には、ExcelやLibreOfficeのような明示的な文字コード選択機能はありません。自動判定に頼るしかないため、確実に成功させるには事前にUTF-8へ変換することが必須です。手間を省きたい場合は、Excel側で「CSV UTF-8」保存をルール化することをおすすめします。
Q6:CSVをコピー&ペーストでスプレッドシートに貼り付ければ文字化けしませんか?
A:はい、テキストエディタやExcelで開いて正しく表示されている内容をコピーし、Googleスプレッドシートに貼り付ければ文字化けは起こりません。コピペの過程でブラウザがUTF-8変換を行うためです。ただし、貼り付け時に「列分割」がうまく機能しないことがあるので、貼り付け後に「データ」→「テキストを列に分割」で区切り文字を指定する必要があります。
Q7:複数のCSVを一括でUTF-8変換したいのですが、効率的な方法は?
A:PowerShell(Windows標準)が最も簡単です。以下のコマンドをフォルダ内で実行すれば、全CSVを一括変換できます。Get-ChildItem *.csv | ForEach-Object { (Get-Content $_ -Encoding Default) | Set-Content "utf8_$_" -Encoding UTF8 }。Macならfor f in *.csv; do iconv -f SHIFT_JIS -t UTF-8 "$f" > "utf8_$f"; doneでほぼ同じことが可能です。プログラミング経験があればPythonの方が柔軟性が高くおすすめです。
Q8:CSVの一部の列だけ文字化けします。どう対処すべきですか?
A:複数の文字コードが混在している可能性が高いです。これは、複数のシステムから出力されたデータを単純連結した場合に発生します。対処法として、まずファイルをテキストエディタで開いてバイナリ表示し、どこから文字コードが変わっているかを特定します。VSCodeなら下部の「UTF-8」表示をクリックして再オープンを試せます。最終的にはファイルを分割して個別に変換するか、Pythonのchardetライブラリで行ごとに判定する処理を書くしかありません。
Q9:CSVをGoogleスプレッドシートにインポートすると「文字数制限を超えました」とエラーが出ます。文字化けとは関係ありますか?
A:Googleスプレッドシートには1ファイルあたり1,000万セル、1セルあたり50,000文字の制限があります。文字化けで意図しない長い文字列が生成されると、この制限に引っかかることがあります。先にUTF-8変換を済ませてから、ファイルサイズと行数を確認してインポートしてください。大量データの場合は分割インポートが推奨です。
まとめ
Googleスプレッドシートで日本語CSVをインポートした際の文字化け問題について、原因から解決法まで詳しく解説してきました。文字化けの根本原因は「文字コードの不一致」であり、特にWindows環境のExcelで保存されたShift_JIS形式のCSVをGoogleスプレッドシート(UTF-8前提)にインポートすることで発生します。
最も簡単な解決法は、Excel 2016以降を使っているなら「CSV UTF-8(コンマ区切り)」形式で保存し直すことです。これだけで90%以上のケースが解決します。既に文字化けしているCSVは、Excelの「データの取得」機能で文字コードを指定して開き直すか、メモ帳やテキストエディタで文字コードを変換することで復旧できます。
大量のCSVを扱う場合は、PowerShellやPython、Google Apps Scriptによる自動化が有効です。一度仕組みを作っておけば、毎日の業務時間を大幅に節約できます。IMPORTDATA関数とIMPORTRANGE関数の使い分けも理解しておくと、より高度なデータ連携が可能になります。
BOM付きUTF-8と改行コード(CRLF/LF)の問題は目に見えにくいですが、API連携やシステム間データ交換では重要な要素です。チーム作業ではファイル保存ルールを統一しておくことで、こうしたトラブルを未然に防げます。
本記事で紹介した方法を活用すれば、Googleスプレッドシートの日本語CSV文字化け問題はほぼ全て解決できるはずです。業務効率を上げるために、ぜひ実践してみてください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!