商品コードや受付番号が1.23E+17のように見える場合は、単なる表示の問題か、Excelへ数値として取り込んだ時点で桁が失われたかを先に判断します。15桁を超える識別子は計算対象の数値ではなく文字列として扱います。

表示だけの指数表示か値の変換かを確認

列幅が狭いだけならセルの表示形式や列幅で改善できます。しかしExcelが数値として保存できる有効精度は原則15桁です。例えば18桁のコードを一般形式で入力すると、末尾の桁が0へ置き換わるなどして元の識別子に戻せないことがあります。画面表示が通常の数字に見えても、元データと一致しているとは限りません。

識別子を文字列として取り込む手順

CSVなどの外部ファイルから読み込む際はダブルクリックで開かず、[データ]→[テキストまたはCSVから]でPower Queryを使い、対象のコード列のデータ型をテキストに指定します。すでにExcelのセルに入力するなら、列の表示形式を「文字列」に設定してから貼り付けます。CSV出力時はExcel以外のテキストエディタでも原値を検査します。

15桁を超えるコードを検算する方法

元CSVの012345678901234567とExcelへ取り込んだ値を、先頭0と末尾数桁まで比較してください。LENで桁数を確認しても、誤った数字が同じ桁数で保存されていれば検出できません。元のコードとの一致を文字列として照合することが重要です。数式で計算した商品IDは、計算結果を文字列に変換する前に精度が失われる恐れがあります。

すでに失われた桁を戻せるか判断する

一度数値化で失われた末尾の桁は、セルの表示形式を「文字列」に変えても復元されません。原CSV・取引先マスター等の正本から再取込してください。バーコードなどのキーに使う場合は、変換後に一意性が保たれているか重複チェックも行います。

参考資料

おすすめの記事