ミネムラ珈琲ブログ

AI画像Tシャツ屋/ITラノベ著者/さすらいのコーヒー屋/WEBサービス開発チームマネージャーの日記

ミスの根絶と非効率化のはざま

anond.hatelabo.jp

なんとなく匿名ダイアリーみてて目についたエントリ。別にブクマもついていなかったけど、気になってコメントした。

エクセルで作成した表の検算

業務を効率的にすすめるための手法ではなく、雇用を維持するための手法なんじゃないかと勘ぐってしまう

2017/02/12 13:30

しかし、迂闊なコメントだなという気もしてきたので考え事を書いてみる。

周囲の人は作成した表の確認で縦計横計をすべて電卓で叩いて検算してる。

これに全く意味が無いことだとは思わない。Excelで作ったシステムというのは結構フワフワしがちだ。ソフトウェア開発でいうところのテストにあたるものが存在しないからだ*1

そういう点で、テスト部分をこの電卓計算で補うというのは、ミスが重大な事故につながる*2仕事においては意義がある。

もちろん一度正しく動いた数式、関数がある日突然嘘をつくということは限りなく考えがたい。ただし、なんの変更もなければという前提付きで、この前提は比較的よくひっくり返る。月次の報告用のExcelを使いまわしていて、日数が違うものだから行を増やしたり減らしたりした経験がある人は多いのではないだろうか。

例えば1月にはこうなっていた表が

行/列 A B
1 日付 売上
2 1/1 100
3 ½ 100
4 1/3 100
31 1/30 100
32 1/31 100
33 =sum(B2:B32)

2月になって、3行削除するとこうなる

行/列 A B
1 日付 売上
2 2/1 100
3 2/2 100
4 2/3 100
28 2/27 100
29 2/28 100
30 =sum(B2:B29)

そして3月、Excelのクセがわかっている人間ならば、2から28行の間のどこかで行を追加して、ぺぺっと関数を増やしておく。ただし、ここで29行目の後ろに行追加をするとよくこうなる。

行/列 A B
1 日付 売上
2 3/1 100
3 3/2 100
4 3/3 100
29 3/28 100
30 3/29 100
31 3/30 100
32 3/31 100
33 =sum(B2:B29)

結果として月の合計値から29-31日のデータを含まないものになる。電卓検算を真面目にやるとこういうものは防げる。

こういう例はいろいろある。データ貼り付け用のシートを参照するsumifsで

=sumifs(rawdata!A2:A10000,rawdata!B2:B10000,C3)

みたいなことを書いていると、貼り付け元のデータが1万行を超えて、ある日突然破綻するとか。

こういう事故を防ぐための検算というのは意義のないことではない。ただこの例で言えば事故を起こさないために、sumifsはこう記載すべきだ。

=sumifs(rawdata!A:A,rawdata!B:B,C3)

これでデータシートの行数超過による事故はなくなる。

先程の日付問題も、対策はある。手続きなのか権限なのかで、月替りの更新作業をする人間を制限する。この手の変更を自動化してマクロで組み込む。sumじゃなくて下記みたいな感じにしとく(あってるか検証してない)。

=sumifs(B:B,A:A,"=<"eomonth(today(),0),A:A,">"eomonth(today(),-1))

とはいえ一定のラインを超えると、いっそ業務システムの開発委託したほうがいいのではないかという感じになってくる。ただし、「いやそこまでしなくても・・・」となるのであれば、本来だれかがちょっと頭を下げれば済むミスであって、Excelで従前どおりやるのが最適解。ただし、関数の組み方と業務フロー、テストの仕組みは洗練していこうという意識をもって。

で、ここまでは検算にしてもなんにしても「業務をよくしよう」という前提を共有された話であって、頑張ってよくしたらいいと思う。

ただし世の中単純じゃない。非効率な業務を意図的にやる、という話もある。

どこにも書かれていないが沖仲仕なら誰でも知っている「パレット貨物の掟」というものがあった。トラックがパレット梱包された貨物を運んできたら、まず全部開梱して岸壁に並べる。次にウィンチで釣り上げるためにパレットに載せる。船倉内におろしたらふたたびパレットから下ろして積み付ける、そういう決まりである。 (「コンテナ物語―世界を変えたのは「箱」の発明だった」マルク・レビンソン (著), 村井 章子 (翻訳) 第六章 労働組合)

コンテナ物語―世界を変えたのは「箱」の発明だった

コンテナ物語―世界を変えたのは「箱」の発明だった

コンテナ物語、去年読んでむちゃくちゃ面白かったんだけど、とにかく効率化の戦いをしている。しかし戦う相手は技術的な壁だけではない。むしろ規格統一のための企業間競争、政治、そして労働組合。その中の描写で、効率化したい荷主とそれを阻む沖仲仕の非効率化施策がコンテナ以前からあったのが上のパレットの話だ。とにかくなんの意味もない(そのように見える)。

これは検算とも通じている。この検算、すくなくとも導入した管理側には非効率化でない意図があるのだろう。ただしこれを続けるモチベーションには疑問符がある。もし過剰と思えるレベルでこの検算を実施しているなら、これは「パレット貨物の掟」と同じものになる可能性がある。

この検算でミスが発見される率はどのぐらいあるんだろうか。発見されたときに再発防止策は取られるのだろうか。ミスの検出率が許容できるぐらい稀で、再発防止策が取られていないなら、仮にExcelやめて、なんらかの業務システム導入したとしても、実はずっと検算し続けるんじゃないだろうか。そういう気持ちでコメントをした、ということを補足しようとして長々書いてしまった。何をやっているんだ。

*1:知らないだけかもしれない

*2:ミスが許されない、という言い方は許されないからどうなるのかよくわからないから使わなかった。ミスしたら取引が停止、ミスしたら解雇、とかならわかる。