管理

Excelで先頭のゼロと16桁IDを守る:識別子を文字列にする

この記事はAIの支援を受けて原文を翻訳したものです。専門用語や数式は原文とあわせて確認してください。

商品コード00123が123になったり、長い番号の末尾がゼロになったりすると、列幅を広げても直らない場合があります。計算しない番号は識別子です。入力や取り込み前に文字列として保存することが重要です。後から表示形式を変えることと原本保持は違います。

00123を数値にすると123になる場合がある。表示上のゼロ補完と文字列での保存は異なる。
図 1. 00123を数値にすると123になる場合がある。表示上のゼロ補完と文字列での保存は異なる。

計算する値かを最初に考える

数量や価格は計算用の数値です。商品コード、郵便番号、注文IDは一文字ずつ一致すべき名前に近い値です。00123と123を区別するシステムなら数値変換は不適切です。16桁以上の識別子はExcelの数値精度を超える場合があるので文字列で扱います。

値保存形式理由
数量125数値合計や計算に使用
商品コード00123文字列ゼロも識別子の一部
16桁の注文ID文字列全桁の一致が必要

入力と取り込みを先に準備

直接入力する場合、空の列を先に文字列形式にしてから入力します。一件なら先頭のアポストロフィでも文字列入力を指定できます。CSVの大量データは取り込み段階で該当列を文字列に指定します。変換後に文字列形式へ変更しても消えた桁は戻りません。

Power Queryの自動型変更も確認します。途中で数値にされないよう、原本を最初から文字列で読む手順に修正して再取り込みします。最近のMicrosoft 365やExcel 2024には自動変換を制御する設定もありますが、旧版に同じメニューがあるとは限りません。

入力や取り込みの前に文字列型を指定し、桁数と先頭ゼロを原本と比べる。
図 2. 入力や取り込みの前に文字列型を指定し、桁数と先頭ゼロを原本と比べる。

00000の表示と原本保存は別

数値123に00000の表示形式を使うと、画面では00123に見えます。しかし保存値は数値のままです。ブック内の五桁表示には便利でも、別システムへ渡す識別子を文字列として保つこととは異なります。

TEXT関数も元の桁数が分かるときに表示用文字列を作れますが、失われた長い番号や不明なゼロの数を復元できません。推測せず原本に戻りましょう。

三つの例で保存と再読み込みを試す

  1. 試験ブックに00123、1234567890123456、A00123を文字列で入れます。
  2. 数式バーで全体を確認します。
  3. 保存して開き直し、再度比較します。
  4. CSV出力が必要なら出力ファイルの文字を確認します。
  5. 新しいブックでID列を文字列にして再取り込みします。

CSVにはExcelのセル書式が保存されません。ファイル内に00123があっても、受け取った人が数値として開くと123になります。文字列にすべき列を伝えてください。指数表記だけなら見た目の問題の場合もあるので、実際の桁の損失と分けて確認します。

公式資料:ゼロと長い数字の保持、取り込みと自動変換、CSV入出力。番号は説明用の架空の例です。

あわせて読みたい記事

本文の理解を助けるために制作したオリジナルイラストです。