長い識別番号の末尾まで正確に取り込む

末尾だけ異なる長いIDを、元の文字列のまま取り込みます。両側をテキスト型にして、丸めによる取り違えを防ぎます。

説明図: 長い識別番号の末尾まで正確に取り込む
架空のデータを使った説明図です。実際の画面キャプチャではありません。

長い口座番号や注文IDを数値として扱うと、末尾が変わることがあります。計算用の値ではなく識別番号なら、正確な文字列が残っている元ファイルをJOIN SHEETへ取り込み、テキスト型で照合します。

末尾だけ違う二つの口座コード

架空のAccountsとOwnersには20桁のコードが二つあります。末尾の891はAri、892はBoの口座です。元のCSVには指数表記ではなく、下表の全桁が文字列として残っているものとします。

Accounts

AccountID Amount
12345678901234567891 10
12345678901234567892 20

Owners

OwnerID Owner
12345678901234567891 Ari
12345678901234567892 Bo

元の文字列をテキスト型で照合

  1. ExcelでCSVを開き直して保存する前に、元ファイルのIDの末尾を確認します。全桁が正確に残っているファイルを使ってください。
  2. AccountsとOwnersを取り込みます。AccountIDとOwnerIDのデータ型バッジを開き、両方を「テキスト」にします。
  3. Accountsを左、Ownersを右に置き、AccountIDとOwnerIDの接続点をつなぎます。「一致する行のみ」を選びます。
  4. 結果のID全体とOwnerを照合します。Excelに保存した場合も、末尾を含む全桁がテキストとして残っているか確認します。

説明図: 元の文字列をテキスト型で照合

891と892を別々に対応させる

結果は2行です。末尾891にはAri、892にはBoが対応します。二つの番号が同じに見える場合は、そのまま進めず元ファイルの保存値を確認してください。

AccountID Amount OwnerID Owner
12345678901234567891 10 12345678901234567891 Ari
12345678901234567892 20 12345678901234567892 Bo

説明図: 891と892を別々に対応させる

丸められた末尾は元に戻せません

「テキスト」に変えても、すでに丸められたり省略されたりした桁は戻りません。正しいIDが残っている元のシステムから、ファイルをもう一度出力してください。

CSVに全桁の数字が残っていれば、文字列として照合できます。一方、Excelのセルですでに数値が丸められている場合は、元の番号を確認する必要があります。先頭の0にも意味がある場合は、先頭に0があるコードの照合も参考になります。

自分のファイルで始めましょう

JOIN SHEETを使ってみる ↗

Excel・CSVの作業はPCでご利用ください。
新しいタブで開くため、作業中のデータは置き換わりません。

サンプルの検証日:

出典

How to import long number from csv to excel without converting to scientific notation in VBA (Stack Overflow)

原文はVBAで長い口座番号を取り込む際、指数表記に変わる問題です。ここでは元の文字列が残っているCSVを使い、異なる識別番号を区別して取り込む手順を扱います。 説明には別途作成した架空のデータを使用しています。