theonehub.app

FILES — ファイル・画像・PDF

CSVの先頭ゼロや番号を変えずに読み込む

CSVの先頭ゼロや番号を変えずに読み込むのアイキャッチ

商品コードの「00123」が「123」になると、同じ番号に見えても元の識別子とは違います。番号として計算する値と、文字列として保持するコードを取り込み前に分けます。

この記事の目次

列の意味を決める

商品コード、郵便番号、会員番号などは、数字だけでも文字列として扱う必要があります。一方、数量や金額は計算の対象です。見た目が似ているからといって全列を同じ型にしません。

取り込み時に指定する

表計算ソフトのCSV取り込みで、対象列を文字列として扱えるか確認します。Excelの自動変換や取り込み機能は版によって選択肢が異なります。少量のサンプルを先に読み込み、期待どおりか確かめます。

消えた後の書式変更に頼らない

表示形式でゼロを足しても、元の桁数が分からなければ正しいコードの復元にはなりません。長い番号や日付風の値が自動変換された場合も、原本から適切な型で読み込み直す方法を優先します。

出力後の値を確認する

「00123」「1-2」「長い番号」のような確認用の値を選び、出力したCSVを文字として確認します。数式やセルの見た目ではなく、受け取る側が読む値が目的どおりかを確かめます。元CSVと作業用ブックは分けて保管します。

番号は文字列として取り込み、原本と桁を照合する
番号は文字列として取り込み、原本と桁を照合する
画像を選ぶと拡大できます。
  1. 番号の列と計算する数値の列を区別します。
  2. 番号の列は取り込み時に文字列として指定します。
  3. 原本と比較し、先頭ゼロや長い番号が変わっていないか確かめます。

数字の並びが何を表しているかを考える

「数量が123個」と「商品コードが00123」では、数字の役割が違います。数量は足したり比較したりする値ですが、コードは対象を区別する名前として使います。コードの先頭ゼロを落とすと、数字としての大きさが同じでも、システムが照合する文字列は変わります。

ここで重要なのは、全ての数字を文字列にすればよいという話ではないことです。数量まで文字列にすると、その後の集計に別の調整が必要になる場合があります。列ごとに「計算する値か」「そのまま照合する識別子か」を決めると、取り込みの設定に理由を持たせられます。

商品一覧を更新する例

商品コード、商品名、数量を持つ一覧を読み込む場面を考えます。確認用に、仮のコード「00123」と「123」、ハイフンを含むコードを選びます。これらを実データへ追加するのではなく、手元の確認用サンプルや該当する既存行で動作を見ます。商品コードは文字列として保持し、数量は集計の用途に合う型で取り込みます。

確認では、セルに見える表示と、出力ファイルに書かれる値を分けて見ます。表示だけが五桁に整っていても、提出先へ渡る値が同じ形とは限りません。商品コードを使って一件を照合するところまで試すと、見た目だけの確認よりも利用目的に近づきます。検証用のデータを本番の一覧へ混ぜないことも、作業の区切りとして確認します。

ゼロが消えたときに判断を急がない

分かっていること取る方法
元CSVが残っている原本から型を指定して読み込み直す
コードの正式な仕様がある桁数や許される文字を仕様と照合する
元の桁数が分からない一律のゼロ追加で推測せず確認する
表示だけを整えたい保存される値との違いを把握して書式を使う

失われた情報を復元する作業と、見やすく表示する作業を混ぜないことが大切です。提出用CSV、編集用ブック、受領した原本を分けて保管すると、どの段階で値が変わったかを追えます。定期的な取り込みなら、先頭ゼロや日付に見える文字列を含む確認項目を残し、次回も同じ観点で点検します。

参考リンク