CSVの備考を1か所直したかっただけなのに、商品コードの「00123」が「123」になってしまった。
区分コードの「1-2」が日付になったり、長い管理番号の末尾が変わったりして、保存してよいのか分からなくなった。
こうしたトラブルは、ExcelがCSVの内容を読み込む際に、数字や日付として自動的に解釈することで起こります。開き方を変えれば防げるものもあります。
この記事では、CSVの表記が変わる原因と、Excelで文字列として取り込む方法を説明します。あわせて、計算や集計は必要なく、内容の確認や数か所の修正だけをしたいときに使える、ITtrip提供の「こわさないCSV」も紹介します。
すでに0や番号の変化に気づいた場合は、元のCSVに上書きしないでください。
まず原本を残し、コピーで確認します。Excelの画面上で値が変わっていても、保存前なら元のCSVには正しい文字が残っている場合があります。
まず結論:計算するのか、表記を保って直すのかで選ぶ
CSVを扱うときは、「Excelを使うかどうか」よりも、そのデータで何をしたいのかを先に決めると、作業方法を選びやすくなります。
計算・集計・グラフ作成をしたい
Excelを使い、商品コードや管理番号など、変えてはいけない列を取り込み時に「文字列」として扱います。
CSVの内容を確認し、必要なセルだけ直したい
数値や日付への自動変換を行わないCSV編集ツールを使う方法があります。「こわさないCSV」は、このような確認・軽微な修正に向けたツールです。
すでに値を変えた状態で上書きしてしまった
元システムからの再ダウンロードや、バックアップの確認を優先します。たとえば「123」という値だけでは、元が「00123」だったのか「000123」だったのかを判断できません。
CSVをExcelで開くと、何が変わることがある?
CSVは、値を区切り文字で並べたテキスト形式です。Excelブックのように、「この列は商品コードなので文字列として扱う」といったセルの型や表示形式を保存する形式ではありません。
そのため、同じCSVでも、読み込むソフトや設定によって値の解釈が変わることがあります。
代表的なのは、次のような変化です。
| 元の内容の例 | 起こり得る変化 | 確認したいこと |
|---|---|---|
商品コード 00123 | 123 になり、先頭の0が消える | 数値として取り込まれていないか |
区分コード 1-2 | 日付として扱われる | 日付の自動判定が働いていないか |
管理番号 123456789012345678 | 末尾の桁が変わる、指数表記になる | 長い番号を数値として扱っていないか |
コード 1E10 | 指数表記の数値として扱われる | Eを含む文字列が数値化されていないか |
金額表記 "1,200" | 数値として読み込まれ、1200 と表示される | カンマを含む文字列なのか、計算用の数値なのか |
| 日本語の項目名・備考 | 文字化けする | 読み込み時の文字コードが合っているか |
数値や日付の変換はExcelの設定や取り込み方法によって異なります。表の変化がすべての環境で必ず起こるわけではありません。
先頭の0・日付・長い番号は「計算する値」と区別する
「00123」と「123」は、計算上は同じ数値です。しかし、商品コードや受付番号としては別の表記です。
「1-2」も、区分コードなのか日付なのかは、その文字だけでは分かりません。変えてはいけないコードは、読み込み時から文字列として扱う必要があります。
長い番号では、表示だけでなく値そのものにも注意が必要です。Excelが数値として扱う場合の有効桁数は最大15桁であり、16桁以上の番号は正確に保持できないことがあります。
一方で、「E+」を含む表示になっただけで、必ず桁が失われたと判断できるわけではありません。 表示方法の問題と、数値化による精度の問題は分けて確認しましょう。長い管理番号を計算に使わないのであれば、最初から文字列として取り込むのが基本です。
「カンマが消えた」は、3つのケースを分けて考える
カンマについては、見えなくなったことが、そのままデータの破損を意味するわけではありません。
1つ目は、列を区切るためのカンマです。
次のCSVには、2つの項目があります。
00123,確認済み
これを表として開くと、「00123」と「確認済み」が別々のセルに表示されます。間のカンマは列の区切りとして使われるため、セル内には表示されません。これは通常の動作です。
2つ目は、セルの内容として必要なカンマです。
00123,"午前,午後"
この例でも項目は2つです。後半の「午前,午後」は、カンマを含めて1つのセルの内容になります。
一般的なCSVの記法では、セル内にカンマや改行などを含める場合、値をダブルクォーテーションで囲みます。引用符を一括削除したり、すべてのカンマを機械的に置換したりすると、列の区切りまで変えてしまうおそれがあります。
3つ目は、「1,200」のような数値の桁区切りです。
これが数値として読み込まれると、表示形式によっては「1200」と見えます。計算上の金額は同じでも、CSVに「1,200」という文字を残したい用途では、文字列として扱う必要があります。
区切り文字のカンマ、セルの中のカンマ、数値の表示上のカンマは、別のものとして確認しましょう。
文字化けは、0落ちとは別の問題
日本語が読めなくなる場合は、文字コードの読み違いが原因になっていることがあります。
Excelでは、CSVを取り込む際に文字コードを確認する方法があります。また、Microsoftは、UTF-8のCSVについて、BOM付きでの保存や、データの取り込み機能を使う方法を案内しています。
ただし、UTF-8にしただけで先頭の0や日付の自動変換まで防げるわけではありません。 文字コードと、数値・日付として扱うかどうかは、別々に確認する必要があります。
文字化けした状態で上書きする前に、原本から正しい文字コードで読み直してください。
ExcelでCSVの0や日付を変えずに開く方法
Excelで作業を続けたい場合は、CSVをそのままダブルクリックするのではなく、取り込み機能で列の扱いを指定する方法があります。
以下はWindowsのデスクトップ版Excelを前提にした手順です。バージョンによって、メニューの名称や表示位置が異なる場合があります。
この節の画像は、操作の流れを示す図です。実際のExcel画面ではありません。
Power Queryエディターでは、CSVの内容から列の型が自動判定され、「変更された型」という処理が追加される場合があります。
右側の「適用したステップ」を確認し、自動変換で0や表記が変わっている場合は、その型変換のステップを削除してから、必要な型を設定します。数値に変換した後で文字列に戻すのではなく、自動変換前の値から文字列として取り込むことが重要です。
なお、元のCSV自体ですでに0や桁が失われている場合は、この操作で復元できるわけではありません。
必要な編集をしたら、元のCSVとは別の名前で保存します。
提出先や取り込み先からCSVの種類や文字コードを指定されている場合は、その仕様に合わせてください。Excelブックとして保存したファイルと、CSVとして保存したファイルは別の形式です。
取り込み時に正しく表示できたことと、出力したCSVが期待どおりであることは、分けて確認しましょう。確認のポイントは、後述の「保存したCSVは、もう一度確認する」で説明します。
対応するExcelでは「自動データ変換」の設定も使える
Microsoft 365・Excel 2024の追加設定を見る
Excel for Microsoft 365やExcel 2024では、自動データ変換の設定を変更できます。
Windows版では、「ファイル」→「オプション」→「データ」→「自動データ変換」を開き、先頭ゼロの削除、長い数値の変換、Eを含む値の変換など、不要な変換を無効にします。
ただし、この設定ですべての日付への変換が止まるとは限りません。ハイフンや空白などを含む値は、引き続き日付として扱われる場合があります。また、この設定はPower Queryでの取り込みには直接適用されません。
表記を守る必要がある列は、取り込み側でもテキストとして指定してください。
数か所だけ直すなら「こわさないCSV」という方法もある
「備考を1か所書き換えたい」「商品コードが合っているか確認したい」。
その程度の作業であれば、計算や集計のための設定まで必要ない場合があります。
ITtripが提供するこわさないCSVは、CSVの各セルを文字列として扱い、先頭の0、長い番号、日付に見える文字を自動変換せずに確認・編集する無料ツールです。利用登録は不要です。
Excelのすべての機能を置き換えるものではなく、「そのまま確認して、必要なセルだけ直す」ための選択肢として使います。
無料・登録不要。まずはサンプルから試せます。
「CSVをダウンロード」を押し、案内に従って編集後のファイルを保存します。サービスは元のファイルを直接上書きせず、コピーをダウンロードする方式です。操作方法や変更確認については、サービスの使い方でも案内しています。
作業を終える前に、必ずダウンロードしてください。
こわさないCSVには編集内容の自動保存・復元機能はありません。タブを閉じたりページを更新したりすると、編集中の内容は失われます。
ファイルの中身は、ブラウザー内で処理する仕様
こわさないCSVのプライバシーポリシーでは、ファイル本体、ファイル名、セルの内容、検索語などをサーバーに送信せず、ブラウザー内で処理する仕様を説明しています。
一方で、サイトを表示するための通信は発生し、編集画面の外側や案内ページには広告・アクセス解析があります。「CSVの中身を送信しない」ことと、「通信や広告・解析が一切ない」ことは同じではありません。
機密情報や個人情報を扱う場合は、所属先の利用ルールを確認してから使用してください。
得意な作業と、対応していない作業を確認する
こわさないCSVは、セルの確認や修正に機能を絞っています。
入力ファイルは20MBまでですが、別途レコード数・列数・セル数などにも上限があります。また、行・列の追加削除、並べ替え、計算・集計、一括置換、Excelブック形式の編集には対応していません。
大量のデータ加工や集計が目的ならExcelなどを使い、既存のCSVを少しだけ直す用途と使い分けてください。 詳しい条件は「対応範囲・利用にあたって」で確認できます。
保存したCSVは、もう一度確認する
CSVは、保存できたところで終わりにせず、出力したコピーも確認しましょう。
確認するときは、数値や日付への自動変換を行わない方法で開きます。Excelを使う場合は、ここまで説明した文字列として取り込む方法を使ってください。
特に見ておきたいのは、次の3点です。
- 値の表記:先頭の0、長い番号の末尾、日付に見えるコード、セル内のカンマが残っているか。
- 変更した範囲:修正したかったセル以外に、意図しない変更がないか。
- ファイルの構造と条件:列の並びやレコード数が変わっていないか。取り込み先が指定する文字コードなどの条件に合っているか。
セル内に改行があるCSVでは、テキスト上の行数と、表としてのレコード数が一致しない場合があります。単純な改行の数だけで件数を判断しないようにしてください。
この記事の検証用CSV(ヘッダーを含む4レコード・6列)では、ダウンロード後のファイルをCSVとして解析し、備考の1セルだけが変更され、ほかのセルは同じ値であることを確認しました。UTF-8のBOMとCRLFの改行も保持されていました。これは今回の説明用データでの確認結果です。
こわさないCSVで保存しても、その後のExcelの自動変換まで止められるわけではありません。
保存後のCSVをExcelで通常どおり開くと、再び値が数値や日付として解釈されることがあります。「保存で変わった」のか、「確認のために開いたソフトが変換した」のかを分けて考えてください。
また、外部から受け取ったCSVには、表計算ソフトで数式として解釈される値が含まれる場合があります。こわさないCSV内では数式を実行しませんが、その後にExcelなどで開く場合の扱いは別です。保存時に注意が表示された場合は、内容を確認してください。
CSVの編集でよくある質問
- 「00123」をダブルクォーテーションで囲めば、Excelでも0は消えませんか?
-
それだけでは、文字列として扱われる保証にはなりません。CSVのダブルクォーテーションは、カンマなどを含む値を1つの項目として表すためにも使われます。Excelの取り込みでは、引用符の扱いと列のデータ形式は別の設定です。先頭の0を保ちたい場合は、列を文字列として取り込んでください。
- CSVを開いた後で、セルの表示形式を「文字列」にすれば直りますか?
-
すでに消えた0や失われた桁を、表示形式の変更だけで元どおりに戻すことはできません。正しい内容が残っている原本から、文字列として取り込み直してください。
- 表示形式を「00000」にして、0を補う方法ではだめですか?
-
「必ず5桁」という仕様が分かっているデータの表示を整える用途では使えます。ただし、元の値を確認したことにはなりません。桁数が混在するコードや、長い番号で失われた桁の復元には使えないため、原本の確認を優先してください。
- CSVをUTF-8で保存すれば、0落ちや日付への変換も防げますか?
-
防げるとは限りません。UTF-8は文字を記録する方式であり、Excelがその値を数値や日付として扱うかどうかとは別の問題です。文字コードと列のデータ型の両方を確認してください。
まとめ:CSVは「変えてよい値」と「保つべき表記」を分けて扱う
CSVをExcelで開いたときの0落ちや日付への変換は、データが数字や日付として解釈されることで起こります。計算に使う数値と、商品コード・管理番号などの文字列を分け、必要な列を文字列として取り込むことが対策の基本です。
一方、「内容を見たい」「備考を1か所だけ直したい」という作業なら、最初から文字列として確認・編集する方法も選べます。
大切なのは、原本を残し、必要なところだけ修正し、保存したコピーも確認すること。 作業に合う方法を選び、CSVの表記を意図せず変えないようにしましょう。
まずはサンプルで、CSVの確認・編集を試してみてください。













コメント