ExcelでUTF-8のCSVを文字化けさせずに取り込む
Windowsデスクトップ版ExcelのPower Queryによる手順です。UTF-8 BOMなしCSVはダブルクリックで文字化けする場合があるため、[テキストまたはCSVから]でエンコードを確認します。
公開 · 更新 · FaultNote 編集方針
この記事が役立つ人・作業前の準備
- 日本語CSVが文字化けする人
用意するもの
- 元CSVを変更せずコピーを用意する
- 区切り文字と先頭ゼロを残す列を把握する
小さな照合表で取り込み条件を決める
取り込む前に、元CSVから先頭ゼロのある番号、カンマを含む名称、日本語、日付に見えるコードの4種類を探します。全件を目視する代わりに、この4例を照合用の記録として残します。文字コードをUTF-8へ設定して名前が読めても、番号や日付コードが変換されていれば目的の取り込みではありません。取り込み直すたびに同じ4例を比較すると、設定変更がどの値へ影響したか判断できます。
プレビューで列数と見出しを確認し、変換画面で番号列をテキストへ指定します。自動の型変更を修正した後、Excelへ読み込み、セルの表示だけでなく数式バーの内容も確認します。セルの表示形式を後から00000へ変えるだけでは、元の桁情報を保持したとは限りません。必要な番号は文字列として扱い、元データと一致するかで判定します。
CSVを編集して再提出する場合、数式や色分けは相手のCSVへ残りません。編集用.xlsxと提出用.csvを別名で持ち、提出CSVを再度取り込みます。先頭ゼロと列数が変わっていなければ、その時点のファイルについて確認できたことになります。ファイル名が同じ古い版を送らないよう、更新時刻と保存先も確認します。
取込元を更新して再読み込みする運用では、毎回手で直した値が更新により戻る可能性があります。番号列をテキストにするなどの必要な処理は、取り込み設定や変換手順として残します。初回だけ整っていることより、次のCSVでも同じ代表例が正しく取り込まれることが重要です。ファイルを差し替える前に、取込先のブックのコピーを保管します。
列名や列の順序が変わったCSVは、前回の設定で同じ意味になるとは限りません。新しい素材では見出しと列数を確認し、追加列が取り込まれたか、旧列へ別の値が入っていないかを見ます。CSVの元ファイルにない値を取り込み側で推測して埋めず、欠けた情報が業務上必要なら配布元のデータを確認します。
- 元CSVの4種類の値を控える
- プレビューで区切りと列数を確認する
- 型を指定して読み込む
- 提出CSVを再取り込みして同じ値を比較する
空のブックから取込画面を開く
CSVをダブルクリックせずExcelで空のブックを開き、[データ]>[データの取得]>[ファイルから]>[テキストまたはCSVから]を選んで sample.csv を指定します。Microsoft 365、2024/2021/2019/2016のWindows版が公式記事の対象です。
- 空のブックを開く
- データの取得を開く
- CSVを選ぶ
文字コードと区切りを確認する
プレビューの[元のファイル]で「65001: Unicode (UTF-8)」を選び、区切り記号を[コンマ]にします。練習用CSVの「社員番号,氏名,部署」が3列に分かれ、日本語の見出しと「サンプルA」が正しく表示されることを確認します。
- 元のファイルをUTF-8にする
- 区切りをコンマにする
- 日本語と列分割を確認する
列型を整えて読み込む
社員番号「00123」は自動で数値へ変換されると先頭ゼロが消えます。[データの変換]を開き、右側の[適用したステップ]に自動作成された[変更された型]がある場合は、そのステップを削除して元の文字へ戻します。対象列を選び、データ型を[テキスト]に設定してから[閉じて読み込む]を選びます。すでに数値へ変換された123を後から文字列へ変えても、失ったゼロは戻りません。
プレビューのデータ型検出に[データ型を検出しない]が表示される場合は、取り込み前に選んで全列を文字として扱うこともできます。サンプルの社員番号が00123、00124、00125の5桁で残り、日本語が正しく表示されれば、この取り込み条件を実データへ使えます。
- [データの変換]でPower Queryエディターを開く
- 自動追加された[変更された型]を削除し、元の値が00123へ戻るか確認する
- 社員番号列を[テキスト]型に指定し、[閉じて読み込む]を選ぶ
誤った取込を戻す
練習用に新規作成した取込先シートだけを削除し、正しい文字コード・列型で再取り込みします。ほかの表や計算式がある既存シートは丸ごと削除しないでください。元CSVは取り込みだけでは変更されません。接続も不要なら[データ]>[クエリと接続]で対象クエリを右クリックし[削除]します。
- 取込先シートを削除する
- 不要なクエリを削除する
- 元CSVから再取込する
文字化けがなくても番号の変換を点検する
郵便番号00123や商品番号000045は数値として取り込むと先頭ゼロを失います。[データの変換]で該当列の型をテキストにし、自動追加された型変更ステップが先にゼロを失っていないか確認します。失っている場合は元のCSVから型設定を直して取り込み直します。
日付に見えるコードや長い識別番号も、見た目だけでは取り込み成功を判断できません。元CSVの代表行をテキストエディターで確認し、先頭ゼロ、桁数、区切り位置を表の値と照合します。
- 識別番号の列をテキスト型にする
- 自動の型変更ステップを点検する
- 元CSVの番号と桁数を照合する
列がずれる場合は区切りと引用符を調べる
氏名にカンマを含むCSVでは、その値を引用符で囲む必要があります。全行を同じ区切り文字として読み、プレビューで住所や備考が別列へ割れていないか確認します。文字コードと区切り文字は別の設定なので、UTF-8の選択だけでは列ずれを直せません。
保存はまず.xlsxの別名にします。CSVは複数シートや書式を保持する形式ではないため、整形済みブックの保存先として使うと情報を失います。CSVが必要な提出先には、対象シートだけを書き出し、生成したCSVをもう一度読み直します。
- 備考にカンマがある行をプレビューする
- 正しい区切り文字を選ぶ
- .xlsxを保存後、提出用CSVを読み直す
結果から次の操作を選ぶ
表は横にスクロールできます →
| 状態 | 判断 | 次の確認 |
|---|---|---|
| 名前だけ文字化け | 文字コードの候補を確認 | 元ファイルの実際の文字コードへ合わせる |
| 名前の途中で列が分割 | 区切りと引用符を確認 | 引用されたカンマを1セルに保持 |
| 番号のゼロが消える | 型変更を確認 | 元からテキストとして読み直す |
この作業に使えるFaultNoteのツール
取り込む前に、行数と列数、列数が揃っていない行、先頭ゼロや数式として解釈され得る値をブラウザー内で確認できます。ファイルは送信されず、確認した値はそのままUTF-8のCSVとして保存できます。
注意点・利用条件
- CSVを上書き保存すると書式や先頭ゼロを失う場合があります
よくある質問
UTF-8を選んでも1列のままです。
区切り記号をコンマに変更します。タブ区切りならタブを選びます。
Web版Excelでも同じ画面ですか?
この記事はWindowsデスクトップ版向けです。Web版では機能差があるため、デスクトップアプリで開いて取り込みます。
UTF-8ならすべて正しく読み込めますか?
文字コードが合っていても、区切り文字、引用符、列の型は別です。名前、番号、日付コードを代表例で確認してください。
Excelで開いて保存したCSVが変わりました
編集用.xlsxを残し、提出CSVを再取り込みして確認します。ゼロが失われた場合は表示形式だけで補わず、元CSVから取り込みをやり直します。
出典・確認日
情報確認日:。仕様・操作方法・価格などの確認に使用した出典を掲載しています。適用条件や現在の情報は各リンク先で確認してください。
関連する活用ガイド
- Excelの1シートだけをPDF化する:列を1ページ幅に収めて確認する
- Excelの表をテーブルへ変換する
- Excelで指定列を基準に重複行を削除する
- Excelで入力候補のドロップダウンリストを作る
- Excelで見出し行と左端列を同時に固定する
- 古い日本語ゲームの文字化け:非Unicode用ロケールとUTF-8設定を確認する