CSVガイド

ExcelでCSVの値が変わるときの対策|先頭の0・日付・長い番号

CSVは正しいのに、Excelで開くと商品コードや番号が変わることがあります。元のCSVを下のツールで確認し、計算に使わない番号や日付にしたくない文字列を、文字列として保持したXLSXに保存しましょう。

CSVの値を変えずにExcelへ

アップロード不要・ブラウザ内で処理します。

CSVファイルをここにドロップ

このページで確認・保存する手順

  1. Excelで保存し直す前のCSVを選びます。すでに変わった値を自動で復元する機能ではありません。
  2. 先頭の0、日付のような値、長い番号のある列を確認します。検出は見直すための目安なので、対象外の列も確認してください。
  3. Excelで元の文字を保持したい場合はXLSXで保存します。CSVで保存する場合は、Excelへの取り込み時に対象列を文字列に指定してください。
  4. 保存したXLSXを開き、セルの表示だけでなく数式バーの値も元のCSVと照合します。

変わりやすい値と、残したい形

注文番号や郵便番号は、数字だけでできていても計算する数値ではありません。CSVにはその区別を記録する仕組みがないため、読み込むアプリが値から型を推測します。

元のCSV確認したい変化保存の考え方
00123先頭の0が消えて123になる商品コードとして文字列で保持します。
1-2 / 3/4日付として扱われる区画番号や型番なら元の文字を保持します。
1234567890123456数値に変換すると末尾の精度が失われる16桁以上の識別番号は文字列で保持します。
4901234567894列幅などにより指数表示になるJANコードなら計算用の数値にしません。

指数表示と、桁が失われる問題は別です

1.23E+12のように見えても、表示だけが省略されている場合があります。一方、Excelの数値は有効桁数が15桁までなので、16桁以上の識別番号を数値として扱うと元の桁を保持できません。列幅を広げれば直る表示の問題と、値そのものが変わった問題を分けて確認します。

失われた桁は、セルを文字列に変更しても戻りません。元のCSVや業務システムの記録に戻り、数値へ変換する前の値を取り込み直してください。

Excelで使うならXLSX、システムに渡すなら指定のCSV

このページのXLSX出力は、CSVから読み取った値を文字列として保存します。番号の保護に向きますが、金額や数量を計算したい場合は、Excel側で対象列だけを数値に変換してください。

CSVで渡す必要がある場合は、受け取る側に文字列として取り込む列を伝えます。先頭にアポストロフィや数式を付ける方法は、他システムでその文字がデータとして残る場合があるため、標準の出力方法にはしていません。

Excel側で自動変換を調整する方法もあります

Microsoft 365版とExcel 2024には、先頭の0や長い番号などの自動データ変換を調整する機能があります。Windows版とMac版で利用できます。設定の有無と対象項目を確認し、実際のサンプルで動作を確かめてください。

設定がないExcelでは、CSVをダブルクリックする前に、データの取り込みで列を文字列に指定します。郵便番号・商品コード・注文番号など、計算しない列を先に決めておくと扱いやすくなります。

保存後に確認すること

  • 商品コードは桁数も照合します。00123と123は同じコードとは限りません。
  • 16桁以上の番号は末尾まで比較します。E表記を通常表示に変えるだけでは精度を確認できません。
  • CSVにはセルの型を保存できません。BOM付きUTF-8や引用符だけではExcelの自動変換を防げません。
  • 新しいExcelには自動データ変換を調整する設定があります。ただし、利用できる項目はバージョンにより異なるため、実際の取り込み結果を確認します。

確認できる範囲と保存の上限

表のプレビューは先頭から最大100行・50列までです。長いセルは500文字まで表示しますが、保存するファイルにはすべての列とセルの全文が含まれます。Excelで変わりやすい列の検出は、先頭から最大1,000行が対象です。確認用の文字列を約2MiB以内に抑えるため、それより少ない行数になることもあります。検出されなかった列も含め、必要な値を原本と照合してください。

XLSXで保存できるのは、元ファイルが50MiB以下、データがヘッダー行を除いて25万行以下、全体で200万セル以下の場合です。CSVの保存ではファイル全体を処理しますが、大きなファイルを保存できるかはブラウザの保存機能や空き容量にも左右されます。処理が完了していないデータや、読み取りエラーが残ったデータは保存できません。

100MiBを超えるファイルでは、最初は先頭100MiBの文字を確認します。表示する文字の出現数も、その範囲内の数です。CP932で保存するには「ファイル全体の文字を確認」を押して全体の検査を終えてください。CSVの列数や引用符の検査と、保存するデータの範囲は、どちらの設定でもファイル全体です。

よくある質問

BOM付きCSVなら先頭の0も残りますか?

BOMは文字コードを識別するための情報です。先頭の0や日付への自動変換は別の問題なので、XLSXで文字列として保存するか、CSVの取り込み時に列の型を指定してください。

XLSXにすれば、すでに消えた0も戻りますか?

戻りません。このツールは元のCSVに残っている文字を保持します。すでに0や末尾の桁が消えた場合は、元システムから再出力するなどして原本を入手してください。

日付や金額もすべて文字列になりますか?

このページのXLSX出力では値を文字列として保存します。計算や日付の集計を行う場合は、Excelで必要な列だけを数値や日付に変換してください。

参考資料