「動いているように見えて数字が静かにずれる」自動化を避けるために、作る前に決めておく3つのこと

「動いているように見えて数字が静かにずれる」自動化を避けるために、作る前に決めておく3つのこと

記事
IT・テクノロジー
スプレッドシートやCSVの集計をGASで自動化するご相談で、いちばん多いトラブルは「動かない」ではありません。
「動いているように見えて、数字が静かにずれている」ことです。

エラーが出れば気づけます。止まれば気づけます。
怖いのは、毎朝ちゃんとSlackに日報が届いていて、3か月後に「先月の売上、なんか合わなくない?」と誰かが言い出すパターンです。

このずれは、実装の腕よりも「作る前に決めておいたかどうか」でほぼ決まります。
これまでの経験から、先に決めておくべきことは3つに絞れます。

■ 1. 同じデータが2回届いたら、どうするか
取引先が「さっきのCSV、間違えたので送り直します」と再送してくる。
モールの管理画面から同じ期間を2回ダウンロードしてしまう。
これは必ず起きます。

決めていないと、2回分が素直に足し算されて売上が2倍になります。
「注文番号が同じ行は取り込まない」「同じファイル名は無視する」のどちらにするかを、最初に決めておく必要があります。
どちらが正しいかは業務によって違うので、ここは作る側が勝手に決めてはいけない部分です。

■ 2. 列が増えたり、順番が変わったりしたら、どうするか
基幹システムの更新や取引先の都合で、CSVの列は必ずいつか変わります。
「左から3番目が金額」という作り方をしていると、列が1つ増えた瞬間に「数量」を「金額」として集計し始めます。
しかもエラーにはなりません。数字が入っているので。

「列の名前で探す」作りにしておくこと、そして「見たことがない列名が来たら止めて通知する」ことを最初に入れておくと、この事故は防げます。

■ 3. 読めなかった行を、どうするか
文字化けした行、金額欄が空欄の行、引用符の中に改行が入っている行。
こういう行を「読めなかったので飛ばす」作りにすると、集計から静かに消えます。
飛ばした事実がどこにも残らないのが問題です。

「読めなかった行は別シートに残して件数を出す」だけで、
「今日は3行読めていません」と人が気づけるようになります。

■ まとめ
・重複はどう扱うか
・列が変わったらどうするか
・読めなかった行はどこに残すか

この3つは、実装が始まってから聞かれても答えにくいものです。
逆に言えば、この3つを先に決めてから作れば、集計の自動化はかなり安全に運用できます。

「自分の業務だとどうなるか」を先に整理したい方向けに、
実装の前に範囲・手段・概算・落とし穴を文章でお渡しする診断サービスも出しています。

実装まで含めたご依頼はこちらから。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す