長い識別番号の末尾まで正確に取り込む
末尾だけ異なる長い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 |
元の文字列をテキスト型で照合
- ExcelでCSVを開き直して保存する前に、元ファイルのIDの末尾を確認します。全桁が正確に残っているファイルを使ってください。
- AccountsとOwnersを取り込みます。AccountIDとOwnerIDのデータ型バッジを開き、両方を「テキスト」にします。
- Accountsを左、Ownersを右に置き、AccountIDとOwnerIDの接続点をつなぎます。「一致する行のみ」を選びます。
- 結果のID全体とOwnerを照合します。Excelに保存した場合も、末尾を含む全桁がテキストとして残っているか確認します。
891と892を別々に対応させる
結果は2行です。末尾891にはAri、892にはBoが対応します。二つの番号が同じに見える場合は、そのまま進めず元ファイルの保存値を確認してください。
| AccountID | Amount | OwnerID | Owner |
|---|---|---|---|
| 12345678901234567891 | 10 | 12345678901234567891 | Ari |
| 12345678901234567892 | 20 | 12345678901234567892 | Bo |
丸められた末尾は元に戻せません
「テキスト」に変えても、すでに丸められたり省略されたりした桁は戻りません。正しい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を使い、異なる識別番号を区別して取り込む手順を扱います。 説明には別途作成した架空のデータを使用しています。