CSVを取り込んだのに件数が合わない — 「エラーは出ていないのに一部だけ入っていない」の原因と検算のしかた
公開:
締め時間の前に、受注データのCSVを基幹システムに取り込みました。エラーは表示されず、画面もそのまま次に進みました。ところが翌日、取引先から「頼んだ商品が入っていない」と電話が来る——。
エラーで止まる失敗は、その場で気づけるだけまだ親切です。本当に厄介なのは、エラーが出ないまま一部だけが取り込まれていない失敗です。取込作業をした本人は通ったと思っているので誰も確認しません。気づくのは出荷後か、月末に売上が合わないときになります。
この記事では、取込件数が合わなくなる原因を整理したうえで、締め前に数分でできる検算のしかたをまとめます。取込エラーが表示されたときの対処は基幹システムへのCSV取込でよくあるエラーと対処法にまとめてあるので、そちらもあわせてご覧ください。
なお、行が取り込まれる・除外される条件はソフトやバージョン、設定によって変わります。この記事で特定の製品の挙動として書いているものは公式マニュアル・公式FAQ・ベンダーの公開解説で確認できる範囲に限り、出典を明記しています。一般化しているのは「検算のしかた」という運用側の考え方です。
なぜ「静かに一部だけ入る」ことが起きるのか
CSVの取込は、ファイル全体を1つのかたまりとして扱うとは限りません。多くのソフトは1行ずつ処理して、通った行だけを登録します。この作りだと、10行のうち2行に問題があっても、残りの8行は問題なく登録されて処理が終わります。
さらに厄介なのが、ソフト側が意図的に飛ばす行があることです。これはエラーではなく仕様なので、当然ながら警告も出ません。
たとえば弥生販売と在庫管理システムを連携させる場合の解説(インフュージョン社)では、売上伝票のCSVについて、明細区分が「通常」以外の行(値引や摘要、メモなどの行)と、「在庫管理を行わない」商品の行は連携不要な行として扱われ、行の抽出条件で除外すると案内されています。連携する側から見れば正しい設計ですが、元のファイルの行数と、取り込まれた行数は一致しません。
つまり件数が合わない理由には、次の3種類が混ざっています。
| 種類 | 何が起きているか | 危険度 |
|---|---|---|
| 弾かれた | 問題のある行だけが登録されなかった | 高い(気づかないと欠品) |
| 飛ばされた | 対象外の行として仕様どおり除外された | 低い(ただし知らないと混乱する) |
| 数え方が違う | 伝票の数と明細の行数を比べている | なし(見かけ上のずれ) |
最初にやるべきは、目の前のずれがこの3つのどれなのかを切り分けることです。
原因1: 問題のある行だけが弾かれている
もっとも危険なのがこれです。よくあるのは次のような行です。
- 数量や単価の欄に全角の数字や、単位(「10本」)、記号が混じっている
- 金額に3桁区切りのカンマが入っている
- 品目コードや取引先コードが自社のマスタに存在しない
- 必須の項目が空になっている
このうちカンマは特に見落とされます。社労夢のFAQ(社労夢サポートサイト)では、明細CSVの取込で「項目と内容の個数が一致しないので登録できません」というエラーが出る原因として、セル内に金額の3桁区切りのカンマが入力されていることが考えられると案内されています。CSVはカンマで項目を区切る形式なので、金額の中のカンマが区切りとして解釈され、その行だけ項目数が合わなくなるという理屈です。
Excelの画面上では「1,234」も「1234」も同じ数字に見えます。見た目で判断できないのがこの種の失敗の性質です。
数量欄の全角数字や、コードの先頭ゼロの脱落といった表記の問題は、取り込む前にCSVを作る側で潰しておくのが確実です。詳しくはFAX注文書をCSVにする前に整えたい「表記ゆれ」にまとめています。
原因2: 上書きのつもりが、キーで一致していない
すでに登録済みの受注データを、CSVで上書き更新する運用をしている場合は別の落とし穴があります。更新先が見つからなかった行は、何も起きないまま終わることがあるのです。
速販UXのオンラインマニュアル(標準形式CSV 上書き取込方法)では、上書き取込でエラーになる可能性として、「取込番号」が速販の受注データに存在しない可能性、受注明細(商品詳細)の数が一致していない可能性が案内されています。あわせて、上書き取込するとデータを元に戻すことはできないため十分注意し、心配な場合は事前にバックアップデータを作成しておくことを勧めています。
ここから読み取れる実務上の注意は2つです。
- 上書きは、キーとなる番号が一致して初めて成立する。番号の桁数が変わっていたり、Excelを経由して先頭ゼロが落ちていたりすると、一致しないまま処理が終わります
- 明細の行数まで一致を要求される場合がある。1行だけ追加や削除をしたつもりでも、伝票全体として受け付けられないことがあります
新規登録のつもりで上書きモードを使っていないか、逆に上書きのつもりで新規登録になっていないかは、取込の前に必ず確認してください。取込モードの取り違えは、次に説明する二重登録の原因にもなります。
原因3: そもそも数え方が違う(ずれて見えるだけ)
件数が合わないと感じたとき、実際にはどこも壊れていないケースもあります。数えている単位が違うだけ、という場合です。
- ヘッダ行: 1行目の項目名を含めて数えているか、除いて数えているか
- 伝票と明細: 注文書1枚に商品が5品目なら、伝票は1件でも明細は5行です。取込結果が「1件」と表示されても間違いではありません
- 末尾の空行: Excelで編集したファイルには、見た目には何もない行が残っていることがあります
- 1枚の注文書に複数の納品先: 伝票が分割され、注文書の枚数より件数が増えることがあります
数え方の違いは、一度決めてしまえば毎日悩まずに済みます。「うちは伝票の件数で数える」と決めて、その数え方をメモに書いておいてください。
検算のしかた: 3つの数を突き合わせる
ここからが本題です。取り込んだあとに3つの数を並べるだけで、静かな部分取込のほとんどは締め前に見つかります。
| # | 数えるもの | 数え方 |
|---|---|---|
| 1 | 今日受け取った注文書の枚数(伝票の数) | 紙の束、または受信箱の件数 |
| 2 | 取り込む直前のCSVの伝票行数 | ヘッダ行と空行を除いた行数 |
| 3 | 取込結果に表示された登録件数 | 取込完了画面、または取込履歴 |
見るべきはこの3つの数の関係です。
- 1と2が違う → CSVを作る段階で落ちています。読み取り漏れ、注文書の2枚目を取り込み忘れた、など
- 2と3が違う → 取込の段階で弾かれたか、対象外として飛ばされています。原因1・原因2を確認してください
- 3つとも一致 → 少なくとも件数の面では通っています
ずれた場合は、差の数字がヒントになります。1件だけ足りないなら特定の行の問題、きれいに半分なら伝票と明細の数え方の違い、といった具合です。
取込結果を「見る場所」を決めておく
3番目の数を数えるには、取込結果がどこに表示されるのかを知っている必要があります。多くのソフトには取込の履歴やログが残っています。
スマレジのヘルプ(CSVで商品を一括登録する)では、CSVアップロード履歴に結果が表示され、エラー結果の欄が空白であれば正常にアップロードが完了していると案内されています。逆に言えば、履歴を見る習慣がなければ、エラー欄に何か書かれていても気づけないということです。
お使いのソフトで次の2点を、事故が起きる前に確認しておいてください。
- 取込の履歴・ログはどの画面で見られるか
- 弾かれた行の一覧(エラーデータの書き出し)は取得できるか
弾かれた行を書き出せるソフトなら、そのファイルを直して再度取り込むだけで済みます。取得できないソフトなら、検算でずれを見つけたあとに原本と突き合わせる作業が必要になるので、なおさら件数の確認が効きます。
締め前にできる予防
検算は最後の砦であって、そもそも弾かれないようにするほうが手間は少なくて済みます。
- まず1件だけで取り込む。新しい取引先や様式が変わったときは、1件のファイルで通してから全件を流します。数百行をいきなり投入すると、同じ原因のエラーが何十行も並んで根っこが見えにくくなります
- 取り込む直前のCSVを残しておく。ずれたときに原本と突き合わせられます。上書き取込のように元に戻せない処理では、これがバックアップも兼ねます
- マスタを先に、伝票を後に。取引先コード・品目コードがマスタに無ければ、その行は成立しません
- Excelで開いたら書式を確認する。編集する前にシート全体の書式を「文字列」にし、保存後は確認のためであっても再度Excelで開かないことです
FAXや手書きの注文書が混ざる場合は、読み取りの段階で数え漏れが起きていないかも見てください。1枚の注文書の裏面に追加分が書かれていた、2枚つづりの2枚目が送られてこなかった、といった紙特有の抜けは、CSVの検算では見つかりません。紙の枚数を数えるところが検算の起点になります。
まとめ
| 状況 | 確認すること |
|---|---|
| エラーは出なかったが不安 | 取込履歴を開き、登録件数とエラー欄を見る |
| 件数がずれた | ヘッダ行・空行・伝票と明細の数え方をまず疑う |
| それでもずれる | 弾かれた行の一覧を書き出し、数量欄の全角・カンマ・コード不一致を見る |
| 上書き取込をしている | キーとなる番号が一致しているか、明細の数が変わっていないかを確認する |
| 毎回ずれる | CSVを作る側の表記ゆれを先に潰す |
取込は通ったかどうかの二択ではなく、何件通ったかで見る作業です。数を1つ数えておくだけで、出荷後に気づくはずだった欠品が締め前に見つかります。
手前味噌の紹介
この記事を書いているのは、注文書特化サービス注文書係(ちゅうもんしょがかり)の運営者です。FAX・手書きの注文書をアップロードするとAIが下書きを作り、担当者は自信のない項目だけを確認して確定します。転記にかかる時間を1/10程度に圧縮することを狙ったサービスです。
この記事でいう「1と2のずれ」——注文書からCSVを作る段階での落ち——を減らすのが守備範囲です。読み取った結果はそのまま登録されるのではなく、確認画面で1枚ずつ確定する形なので、注文書の枚数と確定した件数がそのまま対応します。AIが自信を持てなかった項目は黄色で示されるため、数量欄の読み違いのように後で弾かれる原因になりやすい箇所を、CSVにする前に直せます。品目マスタとの突き合わせにも対応しているので、コード不一致で弾かれる行も減らせます。CSV出力では文字コード(UTF-8 / Shift_JIS)と列名・列順を取込先の形式に合わせて登録しておけば、次回から同じ形式で出力されます。
料金は9,800円/月(税抜・500枚まで)から、初期費用0円・いつでも解約可能です。無料トライアル(30枚または14日間、クレジットカード登録不要)で、実際にお使いの帳票との相性を確かめてみてください。