注文書係

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つです。

  1. 上書きは、キーとなる番号が一致して初めて成立する。番号の桁数が変わっていたり、Excelを経由して先頭ゼロが落ちていたりすると、一致しないまま処理が終わります
  2. 明細の行数まで一致を要求される場合がある。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件だけで取り込む。新しい取引先や様式が変わったときは、1件のファイルで通してから全件を流します。数百行をいきなり投入すると、同じ原因のエラーが何十行も並んで根っこが見えにくくなります
  2. 取り込む直前のCSVを残しておく。ずれたときに原本と突き合わせられます。上書き取込のように元に戻せない処理では、これがバックアップも兼ねます
  3. マスタを先に、伝票を後に。取引先コード・品目コードがマスタに無ければ、その行は成立しません
  4. 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日間、クレジットカード登録不要)で、実際にお使いの帳票との相性を確かめてみてください。

よくある質問

Q. CSVの取込でエラーは出なかったのに、一部の受注データが入っていません。なぜですか?
CSVの取込は、ファイル全体を1つのかたまりとして扱うとは限らず、多くのソフトは1行ずつ処理して通った行だけを登録します。この作りだと、10行のうち2行に問題があっても残りの8行は登録されて処理が終わります。件数がずれる理由は3種類に分けられます。1つ目は「弾かれた」——数量や単価の欄に全角数字・単位・記号が混じっている、金額に3桁区切りのカンマが入っている、品目コードや取引先コードが自社のマスタに存在しない、必須項目が空、といった問題のある行だけが登録されなかった場合で、これがいちばん危険です。2つ目は「飛ばされた」——ソフト側が仕様として対象外扱いする行がある場合で、エラーではないため警告も出ません。3つ目は「数え方が違う」——ヘッダ行を含めているか、伝票の件数と明細の行数のどちらを数えているか、といった見かけ上のずれです。まず目の前のずれがこの3つのどれなのかを切り分けてください。
Q. 取り込んだ件数が正しいかを、締め前に短時間で確認する方法はありますか?
3つの数を並べて突き合わせてください。①今日受け取った注文書の枚数(紙の束または受信箱の件数)、②取り込む直前のCSVの伝票行数(ヘッダ行と空行を除いた行数)、③取込結果に表示された登録件数(取込完了画面または取込履歴)の3つです。①と②が違えばCSVを作る段階で落ちています(読み取り漏れ、注文書の2枚目の取り込み忘れなど)。②と③が違えば取込の段階で弾かれたか、対象外として飛ばされています。3つとも一致していれば、少なくとも件数の面では通っています。ずれた場合は差の数字がヒントになり、1件だけ足りないなら特定の行の問題、きれいに半分なら伝票と明細の数え方の違いといった見当がつきます。③を数えるには取込結果がどこに表示されるかを知っている必要があるため、取込の履歴・ログがどの画面で見られるか、弾かれた行の一覧を書き出せるかの2点を、事故が起きる前に確認しておいてください。
Q. 受注データを上書き更新するCSV取込で、何も起きずに終わってしまうことがあります。
上書きはキーとなる番号が一致して初めて成立するため、更新先が見つからなかった行は何も起きないまま終わることがあります。速販UXのオンラインマニュアルでは、標準形式CSVの上書き取込でエラーになる可能性として、取込番号が速販の受注データに存在しない可能性と、受注明細(商品詳細)の数が一致していない可能性が案内されています。あわせて、上書き取込するとデータを元に戻すことはできないため十分注意し、心配な場合は事前にバックアップデータを作成しておくことを勧めています。実務上の注意は2つで、1つ目は番号の桁数が変わっていたりExcelを経由して先頭ゼロが落ちていたりすると一致しないまま処理が終わること、2つ目は明細の行数まで一致を要求される場合があり1行の追加・削除でも伝票全体として受け付けられないことがあることです。新規登録のつもりで上書きモードを使っていないか、逆に上書きのつもりで新規登録になっていないかを、取込の前に必ず確認してください。
Q. そもそも弾かれないようにするには、何をしておけばよいですか?
4つあります。1つ目は、新しい取引先や様式が変わったときはまず1件だけのファイルで取り込み、通ってから全件を流すことです。数百行をいきなり投入すると、同じ原因のエラーが何十行も並んで根っこが見えにくくなります。2つ目は、取り込む直前のCSVを残しておくことです。ずれたときに原本と突き合わせられますし、上書き取込のように元に戻せない処理ではバックアップも兼ねます。3つ目は、マスタを先に、伝票を後に取り込むことです。取引先コード・品目コードがマスタに無ければ、その行は成立しません。4つ目は、Excelで開いたら書式を確認することです。編集する前にシート全体の書式を「文字列」にし、CSVとして保存した後は確認のためであっても再度Excelで開かないでください。なお、FAXや手書きの注文書が混ざる場合は、1枚の注文書の裏面に追加分が書かれていた、2枚つづりの2枚目が送られてこなかった、といった紙特有の抜けはCSVの検算では見つかりません。紙の枚数を数えるところが検算の起点になります。

← コラム一覧へ戻る