※本記事にはPRを含みます。

こんにちは。「脱会社員」脱サラを応援し続けるブログ、運営者の「なかびー」です。

CSVをExcelで開いたら、日本語が読めない文字に変わっていた。別の開き方で日本語は読めるようになったものの、商品コードの先頭の0がなくなっていた。こうした問題では、文字が読めることと、元のデータが保たれることを分けて確認する必要があります。

文字化けを見つけたら、そのファイルへ上書きせず、原本から文字コードを合わせて取り込み直します。そのうえで、コードや長い管理番号を文字列として保てたかを照合してください。 日本語、列の位置、番号、数量をそれぞれ見ることが、今回の手順の中心です。

当ブログでは、同じ三件の架空の文房具データを、BOM付きUTF-8、BOMなしUTF-8、CP932の三つで保存し、Windows版Excelで読み比べました。日本語も三行も数量合計10も合っているのに、異なる三つの管理番号が、Excel内では同じ数値になった対照例があります。行数と合計だけでは見落とす問題を、この三件で追っていきます。

情報確認日は2026年11月5日です。教材は当ブログが新しく作成したもので、実在の顧客、在庫、取引を示す資料ではありません。検証はWindows版Excel16.0・ビルド20527の自動操作による保存とPDF出力です。GUIのダブルクリック、Power Query画面のクリック実演、Mac版・Web版・全Windows環境・実プリンターは未確認です。掲載画像は説明用の生成イメージで、実際のExcel画面ではありません。

今回のゴールは、日本語を読める状態にすることに加え、「0012」と三種類の16桁管理番号を保ち、数量を計算できる表にすることです。実際の仕事では、受取仕様と元データを基準にして確認項目を置き換えてください。

目次
  1. 文字化けと列ずれ・番号の変換を分けて確認
  2. 三行の教材と原本を残し比較の基準を作る
  3. 元の文字コードで読み直し日本語と列を確認
  4. コード列を文字列にし数量列の計算を残す
  5. 三行と合計10でも管理番号が同じになった反例
  6. 再保存したCSVを原本と照合し渡す版を確定

文字化けと列ずれ・番号の変換を分けて確認

日本語・列の対応・番号を別々に確認する説明イメージ

日本語の文字化けと、数字の見え方は別の問題

日本語が読めない文字へ変わっている場合は、ファイルの文字コードと、読み取り側の扱いが合っているかを確かめます。UTF-8で保存されたデータを別の文字コードとして解釈すると、元の文字として読めないことがあります。見えている文字を一つずつ置換する前に、どのファイルをどの設定で読んでいるかへ戻ります。

一方、「0012」が「12」になったり、長い番号が「1.23457E+15」のように表示されたりする現象は、文字コードだけで説明できるものではありません。Excelが数字に見える項目を数値として扱ったことや、数値の表示形式・精度も確認する必要があります。日本語が正常な表にも起こり得るため、同じ修正で直ると思わないようにします。

Microsoftは、先頭のゼロおよび大きい数値の保持で、取り込み時に個々の列を文字列として扱う方法を案内しています。計算する数量と、桁の並びを保つ管理番号では、必要なデータの型が異なります。

列の位置も元データと照合する

CSVの一行には、カンマなどの区切りで項目が並びます。ただし、項目の文字自体にカンマを含む場合もあります。今回の「予備,青」という備考は一つの項目です。引用符で囲まれたこの値が、備考とその隣の列へ分かれていないかを確認します。

文字コードが合っていないときには、今回の自動操作で日本語だけでなく列の取り込みも崩れたケースがありました。すべての環境で同じ崩れ方になるという意味ではありません。文字だけを見て作業を終えず、見出しごとに内容が正しい列へ入ったかを確かめる理由になる観測です。

表は横にスクロールできます。

見えている症状 分けて確認するもの 最初の照合対象
日本語が別の文字に見える 文字コードと読み取り設定 原本の品名と取り込み後の品名
一行が一列になった・列の位置が違う 区切りと引用符、文字の読み取り 五つの見出しと各行の対応
0012が12になった コード列の型 原本にある先頭の0
長い番号が指数表示になった 表示と内部値、桁の保持 原本の番号全文とセルの内容
数量合計が違う 列位置と数量の型、対象範囲 三行の数量2・3・5

原本を確認する前に、修正した表へ上書きしない

最初に開いて化けた表を、元のCSVと同じ名前で保存しないようにします。読み取り方が違うだけなら、原本から取り込み直すことで比較できます。しかし、化けた文字や変換後の番号を保存して元を置き換えると、何が元の値だったかを追いにくくなります。

原本を残したうえで、作業用のブックを別名で作ります。原本の文字コードが分からない場合は、出力元の説明や担当者へ確認します。UTF-8やCP932を手当たり次第に選び、「それらしく見えた」ことだけで決めないことが大切です。氏名や固有名詞では、一文字の違いが別の対象を意味する場合があります。

三行の教材と原本を残し比較の基準を作る

コード0012・0013・0014と数量合計10の三行原本を保管する説明イメージ

コードと管理番号は識別子、数量は計算する値

今回の五列は、コード、品名、管理番号、数量、備考です。コードは四桁の文字列、管理番号は16桁の文字列として保ちます。どちらも大小を計算するための数値ではなく、その対象を識別するための並びです。数量は合計するため、計算に使える数値として扱います。

表は横にスクロールできます。

コード 品名 管理番号 数量 備考
0012 青いノート 1234567890123456 2 予備,青
0013 白い箱 1234567890123457 3 通常
0014 赤いペン 1234567890123458 5 確認用

三つの管理番号は、末尾だけが6・7・8と異なります。目で眺めると似ているため、今回の照合では全文を確認します。先頭の数桁が一致するだけでは、同じ番号を維持できたとは言えません。コードについても、四桁あることと、どの四桁かを組み合わせて見ます。

数量は2+3+5で10です。品名と備考が日本語として読めること、三行あること、五列に入ること、コード三種類と管理番号三種類を区別できることを、別の確認項目にしています。一つの合格だけで残りの項目まで済ませないための基準です。

再現するCSVは、カンマを含む備考を引用する

手元で教材を作る場合の内容は次のとおりです。一行目が見出し、二〜四行目が明細です。コードや管理番号には、説明用の空白や桁区切りを入れていません。自分の業務データを練習用の公開ツールへ送る代わりに、この架空の三件で読み取り方を試せます。

コード,品名,管理番号,数量,備考
0012,青いノート,1234567890123456,2,"予備,青"
0013,白い箱,1234567890123457,3,通常
0014,赤いペン,1234567890123458,5,確認用

「予備,青」の前後にある二重引用符は、カンマを含む備考を一つの項目として表すためのものです。原本の記述とExcelで読み込んだセルの表示を、同じ形でなければならないと考えないでください。取り込み後の備考セルは、引用符を項目の区切り方として解釈したうえで、予備,青という値を持つことを確認します。CSVの構造のための文字と、備考の内容を分けて見る例です。

保存する文字コードは、使用するエディターなどの案内に沿って明示します。今回のファイル名にはutf8-bom、utf8-nobom、cp932の区別を付けましたが、ファイル名を変えるだけで文字コードが変わるわけではありません。自分で指定して保存した事実と、読取り側で選ぶ設定を対応させるための名前です。作成する段階で区別が分からなければ、まず一つのUTF-8教材で試し、未作成の形式を検証済みとしないでください。

文字が同じでも、保存したバイトは異なる

同じ文字の表を、UTF-8のBOMあり・なしとCP932の三つの保存形式で用意しました。ここで同じというのは、意図した文字列と五つの項目が同じという意味です。UTF-8とCP932では、同じ日本語でもファイルに保存されるバイトの並びは異なります。BOMの有無も、UTF-8のファイルの先頭部分に関係します。

MicrosoftのCSV UTF-8ファイルを正しく開くための案内は、BOM付きUTF-8を通常の方法で開く場合と、データ取得から取り込む方法を分けて説明しています。BOMを付けることが、番号の型まで自動的に守る設定になるわけではありません。

今回、三つの原本を作業用ブックとは別に保持しました。比較の途中で元の品名や番号を打ち直さず、どの原本から取り込んだかを記録しています。実際の仕事でも、元のファイル、取り込み設定を持つブック、相手へ渡すファイルを区別すると、問題が起きた段階を追いやすくなります。

見た目の確認と、セルに入った値の確認を合わせる

教材のPDFは、Meiryo11、行高24、列ごとに指定した幅で出力しました。PDFでは、日本語や列の位置、番号が途中で切れていないかを確認できます。ただし、画面や印刷で見えた文字だけでは、セルに保存された内部値が元と一致するかまでは証明できません。

そこで、今回の自動操作ではセルの値と型も読み戻しました。文字列としての「0012」と、数値としての12、16桁全文の文字列と、数値として保存された管理番号を分けて記録しています。PDFは見える範囲の照合、保存されたセルの内容は型と値の照合として使いました。

読者が画面で確かめるときも、セルの表示だけでなく、対象セルの内容と、取り込み時の列の型を見てください。列幅を広げれば見えるようになる問題と、元の情報が変わっている問題は違います。表示を整えたことを、値が戻った証拠にしないようにします。

元の文字コードで読み直し日本語と列を確認

原本のUTF-8またはCP932に合わせて日本語を読み直す説明イメージ

文字コードは出力元の仕様を根拠に選ぶ

日本語が化けていたら、原本がどの文字コードで作られたかを確認します。今回の教材では、作成時にUTF-8とCP932を指定しているため、その指定を根拠に取り込み条件をそろえました。読者のファイルでも、ダウンロード元の案内やシステムの出力仕様を手掛かりにします。

ファイルの拡張子が.csvであることだけでは、文字コードまでは分かりません。「日本語だからCP932」「新しいファイルだからUTF-8」のような決め方ではなく、どの形式で出力されたかを確認します。受取仕様がある場合には、その指定と実ファイルの両方を見てください。

財務省のCSVを文字化けやデータ形式の変更なしで開く案内にも、ExcelのテキストまたはCSVから取り込み、文字コードと列の型を確認する流れがあります。特定のファイル向けの手順を、自分の原本の文字コードを確認する材料と合わせて使います。

Excelのデータ取得からプレビューを確かめる

Windowsのデスクトップ版では、新しいブックで[データ]からテキストまたはCSVの取得へ進み、対象の原本を選ぶ方法があります。表示名や入口は使用版によって異なるため、現在の公式案内と手元のExcelを照合します。原本を開き直す対象と、すでに変換した作業用CSVを取り違えないようにしてください。

プレビューで見るのは、品名だけではありません。見出しが五つに分かれているか、三つの品名がそれぞれ対応する行にあるか、備考の「予備,青」が一つの項目として入っているかも確認します。文字コードを合わせた後で、区切りの設定や型の確認へ進む順番にすると、何を変えたかを説明しやすくなります。

列の型を整える必要がある場合は、すぐ読み込みを確定する前にデータの変換へ進みます。ここではまず、文字として正しく読めることと、項目が意図した列に入っていることをそろえます。「日本語が直ったから全部できた」とせず、次の章で識別子と数量を別に扱います。

今回の自動操作で確認した範囲

今回、BOM付きUTF-8とCP932をExcelの通常のブック読み込み機能で開いた場合、日本語は読めました。ただし、後で説明するコードと管理番号の変換が起きています。BOMなしUTF-8を通常読み込みしたケースでは、文字が化け、列の取り込みも崩れて数量合計は0でした。これは今回の環境と手順に限る結果です。

文字コードと列型を指定した比較には、Excelのテキスト取り込み機能を自動操作するQueryTableを使いました。BOMなしUTF-8を65001、CP932を932として指定した二つのケースで、文字と列の対応を確認しました。これはPower Queryの画面操作を実演したものではなく、同じ原本の読み取り条件を固定するための検証です。

UTF-8の原本を誤って932で取り込んだ対照版では、文字が化け、列の対応も崩れて合計は8でした。0や8が文字化け時の決まった結果になるわけではありません。正しい数量10にならなかった、という教材上の観測です。読者のファイルでは、元の行と列を基準に実際の結果を確認します。

コード列を文字列にし数量列の計算を残す

コード0012を文字列で守り数量2は計算に使う二つの役割を示すイメージ

計算しない番号を、読み込み時から文字列にする

文字が正しく読めた後は、コードと管理番号の型を確かめます。今回の目的では、コード0012の先頭0と、管理番号1234567890123456の16桁すべてを残す必要があります。見た目が数字でも、計算する値として読み込む必要はありません。

Power Queryで整える場合は、コードと管理番号の列を文字列の型として扱います。すでに自動の型変換が入っている場合、その時点で番号が数値になっていないかを確かめます。元の文字列が失われた後のステップで文字列に変えただけでは、落ちた0や桁が元に戻るとは限りません。原本から保持する段階を確認することが大切です。

今回の自動取り込みでは、コード・品名・管理番号・備考を文字列、数量を一般の数値として扱う条件にしました。BOMなしUTF-8とCP932の二つで、コードは0012・0013・0014、管理番号は末尾6・7・8の三種類を保ち、数量合計10も計算できました。

表は横にスクロールできます。

列 今回の扱い 保持・確認する内容
コード 文字列 四桁と先頭0、各行の0012・0013・0014
品名 文字列 日本語全文と対応する行
管理番号 文字列 16桁全文と三種類の区別
数量 計算に使う数値 2・3・5を合計して10
備考 文字列 引用符内のカンマを含む一項目

すべてを文字列にすればよい、とは限らない

番号を守りたいからといって、数量まで無条件に文字列にすることが、今回の目的に合うとは限りません。数量を計算する表なら、計算に使える値として取り込めたかを確認します。識別子の桁を残すことと、数量の演算を使うことを両立させるため、列ごとに役割を決めます。

数字に見えるセルが左寄せか右寄せかは、調べる手掛かりになりますが、それだけで型を確定しません。配置は変更できるからです。取り込み設定、セルに入った内容、計算結果を合わせて見ます。数量列に文字や空欄がある場合も、意味を確認せず0に置き換えないようにしてください。

今回の表では数量がすべて確定した整数ですが、実際のデータには確認中、欠損、返品などの別の意味が入る場合があります。この記事の三件を根拠に、実データの例外を数値へ読み替えることはできません。元の項目の定義と、受け取り側が必要とする型を確認して決めます。

読み込んだ後の書式だけで、欠けた番号を作らない

0012が12になった後に、四桁で0を付けて表示すれば、それらしく見える場合があります。しかし、元が四桁だったことを確認していなければ、どれだけ0を付けるべきかは分かりません。表示上の補完を、原本の保持と同じ確認にしないことが重要です。

長い管理番号も、見た目を整数へ変えるだけで元の末尾が戻るわけではありません。元の情報が残っているのかを、原本の全文と照合します。勝手に6・7・8を足して直すのではなく、元データを正しい型で取り込み直す方へ戻ります。

同じ形式の月次CSVをまとめて更新する仕事なら、Power Queryで月次CSVを結合・整形する手順も関連します。ただし、今回は一つの原本の読み取りと識別子の保持を確認する話です。最初の取り込みが正しいかを確かめてから、繰り返しの更新へ広げましょう。

三行と合計10でも管理番号が同じになった反例

三種類の管理番号の末尾が同じ0になっても数量合計10は一致する対照イメージ

日本語が読め、数量も合っている対照版

BOM付きUTF-8の原本を通常のブック読み込み機能で開いたケースを見ます。品名は青いノート、白い箱、赤いペンと読めました。三件の行があり、数量も2・3・5、合計は10でした。この三つだけを確認すると、問題がないように見えるかもしれません。

ところが、コードは数値の12・13・14へ変わっていました。さらに、元の管理番号の末尾6・7・8が、Excelのセル内では三行とも1234567890123450という数値になっていました。見た目の指数表示だけが同じだったのではなく、読み戻した内部値でも区別が失われていました。

CP932を通常読み込みした対照版でも、今回の条件では同じ変換が起きています。一方、文字コードと識別子の型を指定した取り込みでは、三行の管理番号は異なる16桁の文字列のままでした。文字コードを合わせる確認だけでは、番号の保持まで済まないことが分かります。

表は横にスクロールできます。

確認対象 原本 通常読み込みの対照版 型を指定した版
日本語の品名 三品名 読める 読める
コードの先頭 0012・0013・0014 12・13・14 0012・0013・0014
管理番号の末尾 6・7・8で異なる 三行とも末尾0の同じ内部値 6・7・8を保持
管理番号の種類 三種類 一種類の数値へ同一化 三種類の文字列
数量合計 10 10 10

管理番号の区別が必要なら、合計一致では代用できない

数量合計10は、数量列を今回の範囲で合計できたことを示しています。しかし、管理番号を維持できた証拠にはなりません。数量と管理番号は別の列であり、管理番号の一文字が変わっても、今回の数量の足し算には影響しないためです。

行数三件も同様です。三行残っていても、別々の番号が同じ値になっていれば、後から番号で検索したり照合したりする作業に影響します。原本と結果を比べるときは、件数、数量の合計、識別子の集合を別々に確認します。業務の採用条件に応じて、どれを照合したかを明示してください。

Microsoftは数値の精度に関する説明で、Excelの数値の精度が15桁であることを案内しています。16桁の番号を計算する数値として扱うことと、16文字の識別子として保管することは異なるため、番号の用途を先に決める必要があります。

差が出た行を、コード・品名・数量の組で追う

今回の0012の行は、青いノート、数量2、管理番号の末尾6という組です。通常読み込み版ではコードが12となり、管理番号も別の内部値になっています。それでも品名と数量は一致しました。そこで、番号だけで結果を探そうとして見つからない場合も、残っている品名と数量を手掛かりに、どの行が元のどれに対応したかを照合できます。ただし、同じ品名や数量が複数ある実データでは、その組だけで本人や商品を特定できるとは限りません。

0013の白い箱・数量3と、0014の赤いペン・数量5も、元の行へ戻って確認します。三行すべての管理番号が同じ内部値になったことを確かめるには、一番上のセルだけを見て終えないことが必要です。原本には三種類あったことと、結果には同じ値が三つあることの両方を記録します。「三件の管理番号がある」という言い方では、種類の区別が抜けるためです。

照合表の結果欄には、たとえば「品名と数量は一致、コードは先頭0欠落、管理番号は三種類を保持できず」と、通った項目と通らなかった項目を並べて書けます。すべてを失敗という一語へまとめるより、元から読み直すときに、文字コードだけを直すべきか、列の型も指定すべきかを選びやすくなります。原本が手元にない部分は一致と推測せず、出力元への確認待ちとして別に残します。

同じ表示に見えたら、原本全文と保存された値へ戻る

指数表示のセルを見つけたとき、表示だけの問題なのか、番号の情報まで変わったのかを分けます。今回の通常読み込み版は、内部値を確かめたうえで三種類が一種類になったと判定しています。すべての指数表示を、同じ情報欠落と決めつけるものではありません。

読者の表でも、列幅や表示形式を変更しただけで確認を終えず、原本の番号と全文を照合してください。頭の数桁や文字数だけでは、末尾の違いを見落とします。長い番号が多い仕事では、一致させる対象を曖昧にせず、原本と結果を対応づけて確認する方法を用意します。

元の値が分からない場合、似た番号の規則から推測して補うことは避けます。今回の教材は元の三種類が分かっているため比較できますが、実務では元の出力システムや担当者へ戻る必要がある場合もあります。確認できない箇所を、そのまま確認済みと記録しないようにします。

再保存したCSVを原本と照合し渡す版を確定

保存後CSVを原本CSVと比べて日本語・コード・管理番号・数量を読み戻すイメージ

UTF-8で保存し直しても、変換前の番号が戻るわけではない

通常読み込みしたBOM付きUTF-8のブックを、別名のCSV UTF-8として保存しました。保存後のCSVをUTF-8のテキストとして別に読み戻すと、日本語の品名は読めました。しかし、コードは12・13・14、管理番号は三行とも1.23457E+15という文字列になっていました。原本の0012や、異なる16桁の番号は戻っていません。

これは「CSV UTF-8で保存すれば、取り込み前の番号も復元する」という意味にはならない反例です。保存先の文字コードを整えることと、すでに変わった項目の内容を元へ戻すことは、別の処理です。変換後の結果を、新しい文字コードで保存しただけでは、失われた区別を作り直すことはできません。

この再保存CSVをExcelで再取り込みする追加の自動検証では、日本語が期待どおりに表示されないケースも残りました。その取り込みを正常成功として採用していません。ここで示した保存後のコードと管理番号は、別途CSVのテキストを読み戻して照合した結果です。実際のExcelの画面で行った再読の成功を装わず、確認できた範囲を分けています。

受け取る人の形式と、こちらの作業用ブックを分ける

取り込みと照合が済んだ表を保存するときは、相手が何を受け取る必要があるかを確かめます。Excelのブックが必要なのか、システムへ取り込むCSVが必要なのかで、渡す形式は異なります。Excel上で見やすくしたことだけで、相手のCSVの仕様を満たしたとは限りません。

CSVとして渡す場合は、文字コード、区切り、見出し、列順、番号の扱いなど、指定された条件を確認します。受取側のシステムがどの形式を使うか分からないまま、BOM付きUTF-8ならどこでも同じように読めると決めないでください。Excelでの開きやすさと、別システムの受取仕様は分けて扱います。

作業用のExcelブックを保存する場合も、再度開いてコードと管理番号が文字列として保たれているか、数量の計算が動くかを確かめます。原本、作業版、提出用の名前を分け、どの版を照合したかを記録すると、後から同じ確認へ戻りやすくなります。

三件の照合票を、自分の受取仕様へ置き換える

表は横にスクロールできます。

照合項目 今回の基準 確認したい意味
元の文字コード 作成時に指定したUTF-8またはCP932 読み取り設定を選ぶ根拠がある
見出しと列数 五列 品名や数量が別の列へ移っていない
明細の件数 三件 行が欠けたり増えたりしていない
コード 0012・0013・0014 先頭0と各コードを保持
管理番号 異なる16桁の三種類 番号の全文と区別を保持
備考 予備,青を一項目として保持 引用されたカンマで列が増えない
数量 2・3・5、合計10 型と集計範囲が目的に合う
保存後 渡す実ファイルを別に読み直す 保存前の確認だけで終えていない

この票は、今回の三件に対する照合です。読者の資料の合格条件が、三件や合計10になるという意味ではありません。元の件数、対象の番号、数量の定義、受け取り側の条件へ置き換えます。今回試していない文字やデータがある場合も、すべて扱えると広げず、必要な項目を追加して確かめてください。

プログラムでCSVを読み書きする必要がある場合は、PythonのCSV読書と出力後の照合手順も参考になります。道具が変わっても、原本の文字、列、識別子、計算対象を分けて確かめる考え方は共通です。Excelの画面操作だけの問題なのか、出力ファイル自体の内容が違うのかを整理してから、使う方法を選びましょう。

CSVの文字化けを直す作業は、日本語が読めたところで終わりにしないことが大切です。原本から文字コードを合わせ、列を確認し、番号を文字列で保ち、数量の合計と識別子の一致を別々に照合します。最後に保存された実ファイルを確認することで、読みやすさだけでなく、次の作業に必要なデータを残せたかを判断できます。