月末に届いたCSVを取り込んだら、途中でエラーが出て画面が止まった。何件入ったのかは表示されない。もう一度同じファイルを流していいのか、それとも二重になるのか、判断がつかない。とりあえず一覧を開いて、上から件数を数えることになる。
取り込みそのものより、この「入ったのか、入っていないのか分からない」時間のほうが厄介だ。数え終えて安心しても、翌月また同じ場面が来る。そのうち誰も自動の取り込みを使わなくなり、手で入力したほうが確実だという話になる。
当方は営業の現場で数字を扱ってきて、今はExcelや紙でやっている作業を小さなツールに移す仕事をしている。取り込みの相談を受けたとき、最初に聞くのは中身ではなく回数の話だ。同じファイルを二回流したらどうなるかを決めていないと、いずれ必ず同じところで詰まる。
事故が起きるのは中身より回数
取り込みを作るとき、たいていは正しいファイルが正しく入るかどうかを確かめて終わりにする。ところが実務で起きるのはそこではない。同じファイルを二回流した、途中で止まった、先月のファイルを間違えて選んだ。壊れるのは中身ではなく回数のほうだ。
だから先に決めておく。同じファイルを二回流したとき、二倍になるのか、何も起きないのか。答えは後者にする。何度流しても結果が変わらない形にしておけば、迷ったときはもう一度流せばいい。この一点だけで、取り込みの怖さはほとんど消える。
一件を見分ける鍵を決める
何も起きないようにするには、届いた一行が「すでに入っている行」と同じものかどうかを、機械が判定できないといけない。その判定に使うのが鍵だ。明細番号や取引番号が入っているファイルなら、それを鍵にすれば済む。番号があるファイルは楽である。
番号が無ければ、日付と金額と摘要の組み合わせで見分ける。ただしこれは万能ではない。同じ日に、同じ得意先から同じ金額の入金が二本あることは実際にある。組み合わせだけでは、それが二本目なのか、同じ行を二回読んでいるのかを区別できない。
その場合は、ファイルの中の行番号を足すか、同じ組み合わせが何件あったかを件数として持つ。どちらも決められないファイルは、そもそも自動では取り込めないファイルだと判断する。無理に自動化すると、二重と取りこぼしの両方が起きる。
途中で止まったら、半分入るか全部戻すか
百行のうち六十行目でエラーが出たとする。前半だけ入った状態で放り出されると、残りの四十行を自分で切り出して流し直すことになる。この手作業がいちばん危ない。切り出す位置を一行ずらせば、そのまま抜けか二重になる。
途中まで入ったファイルの、どこから続ければいいのか分からない
だから、途中で失敗したら全部戻す形にしておく。入りかけた分は無かったことにして、元の状態に戻す。こうしておけば、やり直しは同じファイルをもう一度流すだけで済む。前の項の鍵と組み合わせれば、二度流しても増えない。
途中から再開する仕組みを作る手もあるが、どこまで進んだのかを持たなければならず、その記録が壊れたときに打つ手が無くなる。全部戻して最初から流すほうが、作りも運用も単純だ。鍵と、全部戻すこと。この二つが揃って初めて、二回流しても結果が同じになる。
届いたファイルは、そのまま一本残す
取り込む前に列を並べ替えたり、要らない行を消したりしてから読ませている現場は多い。動きはする。ただ、後から数字が合わないと言われたときに、届いたものが違うのか、こちらの読み方が違うのかを切り分けられなくなる。
受け取ったファイルは加工せず、そのまま一本保管する。取り込みは、そこから読む別の工程にする。文字コードや改行の違いも、直さずに残しておく。何か起きたときに原本と突き合わせられるかどうかで、調べる時間がまるで変わる。
原本が残っていれば、送り手に「このファイルで合っていますか」と現物を示して確認できる。加工したあとのものを見せても話が噛み合わない。数字が合わない原因が自分の側にあるのか相手の側にあるのかは、原本が無いと最後まで決着がつかない。
列は増えるし、順番も変わる
翌月から列が一つ増える、順番が入れ替わる。送り手の都合なので、こちらでは止められない。困るのは位置で読んでいる場合だ。三列目を金額として読む作りだと、間に一列挟まった瞬間から、日付を金額として取り込み続ける。
エラーにならないところが厄介である。数字に見える文字が入っていれば、そのまま通ってしまう。列名で読む作りにしておけば、名前が見つからない時点で止まる。静かにずれるより、止まって気づけるほうがいい。取り込みの前に、列の構成を照合しておきます。
取り込んだ記録と、はじいた行を残す
一回の取り込みごとに、いつ・どのファイルを・何件読んで・何件入れて・何件はじいたかを残す。この五つが残っていれば、二重を疑ったときに「その日は一件も入っていない」と一目で分かる。件数が合わない月も、どの回で起きたのかを追える。
そして、はじいた行を捨てない。理由をつけて残す。捨ててしまうと、抜けていることに気づく手段が無くなる。日付の形式が違って弾かれた五行は、誰にも知られないまま消える。残しておけば、直して流し直せばいい。取り込みは一度で終わらせなくてよい。
取り込みは一度で全部通す作業ではなく、通らなかった行を減らしていく作業だと考えたほうがうまくいく。二回流しても増えない、途中で止まったら戻る、はじいた行は残る。この三つが揃っていれば、月末に迷いながら件数を数える時間は無くなる。
当方は元金融系のシステムエンジニアで、Excelや紙で回している一つの作業を、そのまま小さなツールにする仕事を受けている。届いたファイルを取り込んで一覧にするところまでなら一画面で収まることが多く、鍵の決め方が分からない段階でも構わない。毎月どんなファイルが届いていて、それをいまどう処理しているかが分かれば形にできるので、まずはココナラのメッセージからご相談ください。