管理

ExcelでCSVが文字化けする対策:UTF-8と列の型を別々に確認

この記事はAIの支援を受けて原文を翻訳したものです。専門用語や数式は原文とあわせて確認してください。

CSVをダブルクリックしたら日本語や外国語の名前が記号になった場合、元ファイルを上書きしないでください。文字コードを誤って解釈している可能性があります。文字が正常でも先頭のゼロや日付は変換されることがあるため、文字コードと列の型を別々に調べます。

文字コードは文字を読み取る方式であり、列の型は値の解釈方法である。
図 1. 文字コードは文字を読み取る方式であり、列の型は値の解釈方法である。

文字コードと区切り文字を分ける

UTF-8は文字をバイトで表す方式です。コンマやセミコロンなどの区切り文字は列を分ける規則です。文字がおかしいなら文字コード、一行が一セルに入るなら区切り文字を最初に見ます。プレビューで一つずつ条件を変えましょう。

症状最初の確認別に確認すること
名前が文字化け元の文字コード正常な原本があるか
全列が一セル区切り文字引用符内の区切り処理
00123が123列の型変換前の原本

読み込みプレビューを使う

MicrosoftはBOM付きUTF-8 CSVの通常の開き方と、BOMなしファイルのデータ・テキスト取り込み経路を案内しています。BOMの有無は作成方法によります。読み込み前に文字コードと型を選べる経路を使うことがポイントです。

  1. 元CSVのコピーを保管します。
  2. データタブからテキスト/CSV取り込みを選びます。
  3. プレビューで文字コードと区切り文字を確認します。
  4. 名前や住所、非ASCII文字を確認します。
  5. コードや長い識別番号の列を文字列に指定します。
  6. 確認したデータを新しいブックへ読み込みます。

Power Queryが自動追加した型変更の段階も見ます。ゼロを失った後で文字列に変えても復元されません。元データを最初から文字列として読むように手順を修正し、原本を再取り込みします。

文字コードと区切りを確認し、識別子を文字列で取り込み、件数とサンプルを比較する。
図 2. 文字コードと区切りを確認し、識別子を文字列で取り込み、件数とサンプルを比較する。

異なる特徴を持つ行で検証

多言語名簿なら各言語の名前、コンマ入り住所、00123のようなコードを選びます。CSVの引用符内のコンマは項目の内容の場合があります。全コンマを一括置換すると、その住所を壊すことがあります。

行数と列数を比較し、先頭・中間・末尾のレコードを確認します。重要な識別番号は原本と一文字ずつ照合します。プレビューの数行だけでは全件の正確さは確認できません。文字コード、区切り文字、文字列列を記録すると再現できます。

文字化けしたまま保存したら原本へ戻る

誤って読み取った結果を保存すると元の文字が置き換わる場合があります。壊れたファイルを別の文字コードで何度も保存するより、元のダウンロードやバックアップからやり直します。新しいCSVを書き出す場合も、相手の文字コードと区切りの期待を確認し、再取り込みで検証します。

公式資料:UTF-8 CSVの開き方、テキストとCSVの入出力、ゼロと長い数字の保持。メニューはExcelの版とOSで異なります。

あわせて読みたい記事

本文の理解を助けるために制作したオリジナルイラストです。