表・データを整える

CSVを取り込む前に確認したいこと|空欄・重複・桁数のチェック方法

取込前のCSVを架空の商品一覧で点検。必須の空欄、数量の書式、重複コードを行ごとに確認し、元データを直して再検査するまでを紹介します。文字数と固定桁数の違いにも注意。

CSVをシステムへ取り込む直前に「どの行を直せばいい?」と探し始めると、原因も修正箇所も混ざりがちです。取込先の必須項目や書式を先に確認し、元CSVのコピーで空欄・重複・桁数の上限を点検すると、直す場所を絞れます。

ここでは架空の商品一覧を使い、問題のある行を見つけ、修正した別データで再検査するところまで試します。2つのファイルの違いを探したいならCSVの比較方法が別の用途です。

まずは取込先のルールを、列ごとに確認する

「商品コードは必須で重複不可」「数量は必須で半角数字のみ」といった今回確認したい条件を、取込先の仕様から拾います。ここでは次の架空のルールを仮定します。実際の取込先の要件ではありません。

  • 2列目の商品名は必須。
  • 3列目の数量は必須で、半角の 0 〜 9 だけで構成する。
  • 1列目の商品コードは重複不可。この例では商品コードが全行入力されている前提にする。

「数量は0〜9だけ」と「小数や負数を許す」は別の仕様です。後者が必要なデータに半角数字のみの検査を当てはめると、正しい値まで指摘してしまいます。取込先の説明が見つからない場合は、自分の推測で条件を作らないでください。

空欄・重複・文字数の三つの確認結果をまとめ、問題があれば元データを修正する流れ
空欄・重複・文字数を点検し、指摘は元の資料と照らして修正します。最大文字数は固定桁数の保証ではありません。
空欄・重複・文字数の三つの確認結果をまとめ、問題があれば元データを修正する流れ

問題入りの架空CSVを、行ごとに見る

次のCSVには4データ行あります。業務データではありません。

商品コード,商品名,数量
001,ノートA,10
002,,5
002,封筒,12.5
003,ファイルC,123

空欄の項目を探すだけでなく、同じ 002 が2行にあること、12.5 に小数点が入り、123 は3文字であることを確認します。CSVファイルの行番号は見出し行を含みますが、以下でいう「データ行」は見出しを除いた1行目から数えます。

CSVチェックで規則を設定する

CSVチェックを開き、上のコード枠をコピーして「表を貼り付け」欄へ入れます。ファイルとして保存する必要はありません。区切りを「カンマ(CSV)」にして「見出し・先頭行を確認」を押します。見出しが3列に分かれ、001 が保たれているかを最初に確認してください。

続いて検査規則を次のように指定しました。

  1. 規則1:列番号 2(商品名)、必須を選ぶ。
  2. 「規則を追加」で規則2:列番号 3(数量)、必須と半角数字のみを選び、最大文字数を 2 にする。
  3. 「重複キー列を追加」でキー列番号 **1(商品コード)**を指定する。
  4. 「CSVをチェックする」を押す。

問題6件・問題のある行3行・入力4行と表示されました。「件」は指摘の数で、「行」は指摘のある元データ行の数です。同じ行に複数の問題があれば件数のほうが多くなります。

データ行列表示された問題元の値
2商品名必須違反空欄
3数量最大2文字を超過・半角数字のみ(0〜9)の2件12.5
4数量最大2文字を超過123
2商品コードキー重複002
3商品コードキー重複002

「商品コードの重複」は片方だけのエラーではありません。同じコードを持つ両方の行が候補になります。どちらかを機械的に削除するのではなく、2行が別の商品・別の明細なのか、元の台帳を確認します。

CSVチェック

空欄・文字数・数字・重複を指定した規則で点検できます。別サイト・別タブで開きます。

この例のCSVを貼り付けて点検する(別タブで開く)

取込条件と練習用CSVを手元へ残す

取込条件のチェック表(Excel)に、列ごとの必須・文字数上限・数字・重複キー・確認先を記入できます。配布表の初期値は検査規則ではありません。取込先の仕様を見てから埋めてください。

本文の問題入りCSVと修正後の架空CSVも保存できます。元ファイルを残し、まず問題入りを本文と同じ規則で調べ、その後に修正後を試してください。修正後のコード 005 は説明用の別データで、業務のコードの変更指示ではありません。

桁数は「上限」と「ちょうど何桁」を区別する

ツールの「最大文字数」は、入力した文字の上限を調べます。0 にしておけば文字数の検査はしません。数え方はUnicodeのコードポイントで、Excelの LEN やCSVファイルのバイト数と同じとは限りません。仕事で「商品コードは最大3文字」と決まっているなら、コード列に最大文字数 3 を設定する使い方があります。

一方、「ちょうど3桁であること」は最大3文字の検査だけでは保証できません。2桁の 01 も上限には収まります。数量の 12.5 も、半角数字のみの規則では不適合になりますが、小数を許す取込先なら検査規則のほうを見直す必要があります。規則が表現できない要件は、取込先の仕様と元システムで別途確かめてください。

元を直し、同じ条件で再検査する

ツールは元値を自動修正しません。原因を元の資料で確認したうえで、別の架空データとして次のように用意し直しました。実務のコードを根拠なしに 002 から 005 へ変える提案ではありません。

商品コード,商品名,数量
001,ノートA,10
005,ペンB,5
002,封筒,12
003,ファイルC,8

同じ検査規則で再実行すると問題0件・問題のある行0行・入力4行でした。これは指定した規則に該当する問題がなかったという意味で、業務上の数字が正しい、取込が必ず成功するという意味ではありません。

出力する確認リストと原本を分け、元データをどこで修正したかを残してください。実データなら社内の外部ツール利用ルールを確認し、顧客名やCSVの中身を記事や公開画面に載せないことも必要です。文字数の数え方や複合キー、空欄の扱いはCSVチェックの使い方にまとまっています。

次に取り込む形式の列名や列順そのものが違う場合は、検査と変換を混同せず、取込先の列仕様を確認してからCSV列合わせを検討してください。

仕入先品番を自社品番へ読み替えてから取り込む場合は、品番対応表の未登録・重複を確認する手順も参照してください。対応表の必須欄と複合キーの重複を点検しても、取引一覧の品番がすべて登録済みとは限りません。対応先が1つに決まる行と、元資料へ戻って確認する行を分けてから進めます。

参考資料

あわせて読みたい

同じテーマの記事を見る