CSVの先頭の0を消さずに編集する方法|郵便番号・商品コードの扱い方

CSVをExcelで開いたら、商品コード「00123」が「123」になった。郵便番号や電話番号の先頭の0が消えてしまった。そんな経験はありませんか。

この現象は「ゼロ落ち」と呼ばれ、数字の並びが数値として扱われることで起こります。商品コードや郵便番号では、先頭の0も大切な情報です。

CSVの先頭の0を残すには、読み込む段階から対象の値を「文字列」として扱うことが重要です。

この記事では、CSV編集ツールとExcelを使った編集方法、保存後の確認方法、すでに0が消えてしまった場合の対処を解説します。

目次

CSVの先頭の0が消えるのはなぜ?

CSVには、表の値が文字として保存されています。しかし、CSVを開くソフトは、値の内容から「これは数字」「これは日付」と自動的に判断することがあります。

例えば「00123」を数値として読み込むと、数としては「123」と同じなので、先頭の0が取り除かれます。

データの種類残したい値の例数値として扱われた場合
商品コード00123123
顧客番号00004545
ハイフンなしの郵便番号0600001600001
ハイフンなしの電話番号0312345678312345678

※表の値は説明用の例です。

Excelでも、数値への自動変換によって先頭の0が削除されることがあります。Microsoftは、先頭の0を含むデータを保持する方法として、文字列として扱う方法を案内しています。Microsoftサポート:先頭のゼロと長い数値を保持する方法

計算する数字と、識別するための番号を分ける

数量や金額は、足し算や掛け算をするための数値です。一方、郵便番号や商品コードは、相手や商品を識別するための番号です。

商品コード「00123」と「123」を別の商品として管理するシステムもあります。見た目が数字だけでも、計算しない番号は文字列として扱うことを基本にしましょう。

CSVにはExcelのセル書式が保存されない

Excelのブックでは、セルごとに表示形式やデータ型を設定できます。しかし、CSVには「この列は文字列として開く」というExcelのセル書式を保存できません。

そのため、CSVに「00123」が正しく保存されていても、別の人がExcelで直接開いたときに「123」と表示される可能性があります。

編集時に0を残すことと、保存後に0を消さずに開くことの両方が必要です。

編集前に、元のCSVへ0が残っているか確認する

最初に、未編集のCSVをコピーして保管してください。確認や編集には、作業用のコピーを使います。

Excelの画面で0が消えていても、まだ上書き保存していなければ、元のCSVには0が残っている可能性があります。

CSV編集ツールやテキストエディターで元ファイルを開き、対象の値を確認しましょう。

元のCSVの内容対応
「00123」が残っている文字列として読み込み直す
すでに「123」になっている未編集のコピーや出力元を確認する
正しい桁数が分からない商品マスターや管理ルールと照合する

0が消えている場合も、すぐに手作業で付け足すのではなく、どの段階で変わったかを確認することが大切です。

方法1:CSV編集ツールで、文字列のまま編集する

CSVの一部を修正したい場合は、値を文字列として扱うCSV編集ツールが選択肢になります。

事務人の「CSV編集ツール」は、セルの値を文字列として保持する設計です。先頭の0、長い数字、日付のように見える値を、数値や日付へ自動変換せずに編集できます。

基本的な編集の流れ

  1. 未編集の元ファイルを残し、作業用のCSVを用意する。
  2. CSV編集ツールでファイルを読み込む。
  3. 日本語の表示、列の区切り、先頭の0を確認する。
  4. 必要なセルや行・列を編集する。
  5. 利用先に合う保存設定を確認し、編集済みCSVをダウンロードする。
  6. 保存したCSVをもう一度読み込み、対象の値が変わっていないか確認する。

例えば、商品コード「00123」の商品名だけを修正したい場合は、商品コードをそのまま残し、商品名のセルだけを編集します。

Excelから貼り付ける前にも確認する

CSV編集ツールが文字列を保持していても、コピー元ですでに0が消えていれば、その情報は戻りません。

Excelで「00123」が「123」になった後にコピーすると、貼り付け先でも「123」になる場合があります。

元のCSVを直接読み込むか、コピー元で0が残っていることを確認してから貼り付けてください。

方法2:Excelで対象の列を文字列として取り込む

Excelで編集する場合は、CSVをダブルクリックして直接開くのではなく、データ取り込み時に対象の列を文字列として指定します。

ここでは、Windows版Excelの「テキストまたはCSVから」を使う代表的な手順を紹介します。画面やメニュー名はバージョンによって異なります。

データを読み込む前に、対象列の型を指定する

  1. Excelで空のブックを開く。
  2. 「データ」から「テキストまたはCSVから」を選ぶ。
  3. 未編集のCSVを選択する。
  4. 文字コードと区切り文字を確認し、「データの変換」を選ぶ。
  5. Power Queryの画面で、郵便番号や商品コードの列を選ぶ。
  6. データ型を「テキスト」に変更する。
  7. 変換の置き換えを確認する画面が出た場合は、「現在のものを置換」など、既存の型変換を置き換える選択肢を選ぶ。
  8. 先頭の0が残っていることを確認して、「閉じて読み込む」を選ぶ。

自動的に数値へ変換した処理の後ろへ文字列への変換を追加するだけでは、消えた0が戻らない場合があります。元データから文字列として読み取るように設定することがポイントです。

Microsoftも、Power Queryで対象列をテキスト型へ変更し、現在の型変換を置き換える手順を案内しています。Microsoftサポート:取り込み時にデータを文字列として扱う方法

新しく入力するセルも、先に文字列へ設定する

取り込んだCSVに新しい商品コードなどを追加する場合は、入力先のセルをあらかじめ文字列に設定します。

  1. 入力するセルや列を選ぶ。
  2. 「セルの書式設定」を開く。
  3. 表示形式で「文字列」を選ぶ。
  4. その後で、商品コードなどを入力・貼り付けする。

「00123」を入力して「123」になった後で文字列へ変更しても、元の0は自動では戻りません。設定は入力前に行ってください。Microsoftサポート:数値を文字列として書式設定する

対応するExcelでは、自動変換の設定も確認する

Microsoft 365やExcel 2024の対応版には、自動データ変換を制御する設定があります。

「先頭のゼロを削除して数値に変換する」設定を無効にすると、先頭の0を含む数字を文字列として保持できます。ただし、使用しているバージョンや取り込み方法によって動作が異なるため、設定後も対象のCSVで確認してください。Microsoftサポート:データのインポートと分析のオプション

「0を表示する」と「0を含む文字列を保存する」は違う

Excelでは、数値「123」にユーザー定義の表示形式「00000」を設定すると、画面上では「00123」と表示できます。

ただし、このときセルの値は数値の「123」のままです。表示形式で0を補って見せています。

方法セルの値画面上の表示
文字列として「00123」を入力文字列の「00123」00123
数値「123」に表示形式「00000」を設定数値の「123」00123

表示形式を使う方法は、Excelの表を見やすく整える用途には便利です。しかし、CSVへの出力結果や、取り込み先での解釈まで同じになるとは限りません。

CSVの書き出し方によっては、表示された0が出力に反映される場合もあります。それでも、CSVには元のセル書式が保存されないため、開き直すと再び数値へ変換される可能性があります。

他のシステムへ渡す商品コードなどは、表示だけで判断せず、保存されたCSVの値まで確認しましょう。

参考:Microsoftサポート:カスタム数値形式を使用して先頭のゼロを表示する

保存したCSVで、0が残っているか確認する

編集後の確認でCSVをダブルクリックすると、Excelが再び数値として読み込み、0が消えたように見える場合があります。

これでは、保存時に0が消えたのか、開き直したときに消えたのかを区別できません。

確認には、次のいずれかの方法を使います。

  • 値を文字列として扱うCSV編集ツールで読み込む。
  • テキストエディターで対象の値を確認する。
  • Excelのデータ取り込みで、対象列を文字列として指定する。

例えば、保存されたCSVの中に「00123」が残っていれば、少なくともファイル上では先頭の0を保持できています。そのCSVを利用先へ取り込む際も、商品コードを文字列として扱う必要があります。

保存後の確認項目

  • 商品コードや顧客番号の先頭の0が残っているか。
  • 郵便番号の桁数とハイフンの有無が指定どおりか。
  • 長い数字の末尾が変わっていないか。
  • 日本語が文字化けしていないか。
  • 編集していない列の値が変わっていないか。
  • データ件数と列数が想定どおりか。

文字コードとデータ型は別の設定です。UTF-8やBOM付きで保存しただけでは、先頭の0が消える問題を防げるとは限りません。

すでに先頭の0が消えてしまった場合の対処

元ファイルに0が残っている場合

元のCSVに0が残っているなら、そのファイルを文字列として読み込み直します。

編集中のファイルを直す前に、まだ保存していない元のダウンロードファイルや、メールの添付ファイルを確認してください。

桁数が決まっている場合

商品コードが必ず5桁など、正しい桁数が明確な場合は、足りない桁を0で補う方法があります。

Excelでは、A2にある数値を5桁の文字列にする例として、次の式を使えます。

=TEXT(A2,”00000″)

A2が「123」なら、結果は文字列の「00123」になります。7桁と決まっているデータなら、指定を「0000000」にします。Microsoftサポート:TEXT関数

ただし、これは桁数のルールに従って0を補っている処理です。元の値を調べて復元しているわけではありません。

空欄、桁数超過、数字以外を含む値は別に確認し、元の管理データと照合してから使ってください。数式の結果を元の列へ戻す場合は、作業用コピーで結果を確認した後、値として貼り付けます。

正しい桁数が分からない場合

「123」という値だけでは、元が「123」「0123」「00123」のどれだったか分かりません。

桁数が混在している商品コードへ一律に0を付けると、別のコードに変えてしまう可能性があります。商品マスター、顧客台帳、出力元のシステムなど、正しい値を確認できる記録へ戻りましょう。

また、長い番号が数値として扱われ、途中や末尾の数字まで変わっている場合は、0を補うだけでは直せません。

郵便番号・商品コードを扱うときの注意点

郵便番号は、ハイフンの有無も合わせる

ハイフンなしの「0600001」と、ハイフン付きの「060-0001」では、取り込み先が求める形式が異なる場合があります。

先頭の0を残すためだけにハイフンを追加せず、提出先の仕様に合わせましょう。郵便番号の桁数と住所の対応も確認すると、入力ミスを見つけやすくなります。

商品コードは、数字だけでも文字列として扱う

商品コードは計算するための数値ではありません。先頭の0、英字、ハイフンなどを含めた全体が識別情報です。

「000123」と「123」を同じものとして扱ってよいかは、管理ルールによって決まります。編集する側の判断で0を削除・追加しないようにしてください。

電話番号や長い管理番号も同じ考え方で扱う

電話番号、会員番号、注文番号なども、文字列としての扱いが適していることがあります。

特に長い番号では、先頭の0だけでなく、数値として読み込んだ際に桁の情報が変わる問題も起こり得ます。入力・取り込みの前に文字列として扱う設定を確認しましょう。

よくある質問

CSVの値をダブルクォートで囲めば、0は消えませんか?

必ずしも防げません。

CSVのダブルクォートは、カンマや改行などを含む値を区切りと区別するためにも使われるものです。「”00123″」と書かれていても、読み込み側が数値と判断すれば、先頭の0が消える可能性があります。

文字列として読み込む設定を使ってください。

先頭にアポストロフィを付ければよいですか?

Excelのセルへ直接入力するときは、先頭のアポストロフィで文字列として扱わせる方法があります。

ただし、CSVの内容へアポストロフィを一括追加すると、他のツールやシステムでは値の一部として扱われる場合があります。汎用的なCSVの対策として付け足すより、読み込み側で文字列を指定する方法をおすすめします。

UTF-8やBOM付きに変換すれば、ゼロ落ちを防げますか?

文字コードの変更だけでは防げません。

UTF-8やBOMは、文字を正しく読み取るための仕組みです。先頭の0が消える問題は、読み込んだ値を数値として扱うか、文字列として扱うかに関係します。

保存したCSVを相手がExcelで開いても、必ず0を残せますか?

CSVだけで、相手のExcelの読み込み方を固定することはできません。

相手には、対象列を文字列として取り込むよう案内してください。用途がExcel上での閲覧・編集で、CSVの指定がない場合は、文字列として設定したExcelブックを渡す方法も検討できます。

CSVの先頭の0を消さずに編集するには、元ファイルを残し、読み込み時から対象の値を文字列として扱い、保存後のCSVまで確認することが大切です。郵便番号や商品コードを、見た目が数字という理由だけで数値に変換しないようにしましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次