目次を開く
注文IDや決済IDのような16桁以上の数字をExcelで開くと、末尾が0へ変わったり科学表記になったりすることがあります。MicrosoftはExcelの数値精度が15桁までで、長い数値を変換する挙動を案内しています。
IDは数値ではなく文字列
123456789012345678 は数字だけで構成されていても、加算や平均を取らないなら識別子です。最初からTextとして扱います。
Microsoft 365 / Excel 2024ではAutomatic Data Conversionsで長い数値を変換する設定を制御できます。
Text/CSVから読み込む
Excelの「データ → テキスト/CSVから」でファイルを読み込み、対象列をText型へ指定します。すでに15桁以降が失われたセルへ表示形式を変えても、元の数字は復元できません。
原本を別に残す
Excelで編集する前のCSVを残し、保存後ファイルとID列を比較します。大量データなら代表行だけでなく、桁数が長い値を抽出して検査します。
CSVの構造チェックはCSV Preflightで前段に置けます。
本番投入前の最終チェック
16桁以上の値を抽出し、取り込み前後と再書き出し後の3点で比較します。1件だけでなく、桁数の異なる複数サンプルを使います。
- 長いIDをTextとして扱った
- 元CSVを保存した
- 15桁超の値を抽出した
- 再書き出しCSVを比較した
- 末尾まで一致した
一度失われた下位桁は表示形式では戻りません。変換前に止めるのが最短です。
復旧は元CSVからやり直す
すでにExcel上で末尾が0へ置き換わった値は、セルの表示形式をTextへ変えても元の桁へ戻りません。別系統に残した原本CSV、API出力、データベースなどの正本から値を取り直します。復旧後は16桁以上のIDを抽出して前後比較し、1件でも不一致があれば全件投入を止めます。壊れた値から推測で復元しないことが重要です。