Excelで自動化する仕組みはどんな簡単なものでもテストしよう

Excelの計算書は、もちろん自分で計算式を作成したものなので、人間だれしも間違うので、絶対に間違えない保証はどこにもありません。
でも、だからと言って間違いが入っているExcelシートを使い続けるかというと、ちょっとそれもどうかと思うので、でも、そんなこと言ってたら仕事にならないですよね。
そこで必要なのは「確認」です。

テスト

Excelに限らず、モノづくりをした時は、このようなチェックをするのですが、とりわけソフトウェアではチェック作業はものすごく大事なのです。
Excelで作成したシートも一つの自動的な何かが動くソフトウェアの一種です。これはいろいろな考え方があると思いますが、私は、そういう風に捉えています。
なので、このような確認作業が必要で、ソフトウェアにおける動作確認のことを「テスト」と呼びます。
プログラム手法では、テストのやり方がしっかり確立されているのですが、そこまでやる必要があるのかというと、Excelはそういうことを簡略化してもなんとなくいいかなぁと思えるのがメリットだとも思っているので(本当はフル確認が必要ですよ!)、そこまでは必要ないのですが、でも、やっぱり作りっぱなしはいけないと思うので、いくつかテストのポイントを抑えて紹介します。

テストをしなかったら

その前にテストをしなかったらどうなるでしょう。
これは私の経験上、おながが痛くなるような経験をたくさん思い出さなければいけないので、大変苦痛ではありますが、一つ代表的な例をお話します。何回もこれやっちゃってるんですけど。
一つの計算書を作成しました。
もうその計算書は運用されることが決まっていたので、できた報告をすると同時に10人くらいのスタッフが使い始めました。
その日の終わりに、どうしてもその日の実際に処理された数と、計算書の値が違うのです。
この時点で計算書の計算式が間違っていることが判明しました。
どこが間違っていたかというと、一回一回の作業に対して、個数に対するある掛け率があったのですが、その係数の計算を間違っていました。
これは計算書の計算の中でも、総合計のような、最後に求められるというものではなく、初めの個数を入力したら、その値を使って計算する部分で、1つの計算書で100か所くらいの間違いが起きていました。
その計算式をすべて修正し、ちゃんとした数を出せたのが22時過ぎ。
集計の担当者を何人かその時間まで残業させてしまいました。

チェック表を作ろう

テストする時はテストの一覧表を本当は作ります。
でもそんなにがっちり作ることはないので、せっかくこれチェックしとかなきゃと思いついたのであれば、何かにメモしておきます。
何のチェックをするのか、どこがどういう時に、どうなったらいいのかを記録します。
例えばものすごく乱暴に書くとこのような形です。

「番号を入れたらちゃんと商品名が出てくるか。番号欄に番号を入れたら、商品欄に商品名が出てくる」みたいな感じです。

テストの方法

次はテストの方法です。これはちょっと具体的なお話で。

完全一致のVLOOKUP関数で何かを作ったとき、一覧表から参照すると思うのですが、確認するのは一覧表の最初と最後だけチェックすればその間は原理的に網羅されているはずなので、間のデータは正常なはずです。
これはMATCH関数やINDEX関数でも同様です。

全数チェックする必要がありそうなのは、IFS関数やSWITCH関数、CHOOSE関数のような多数に分岐するケースです。
これも理解した上で連続性があるからはじめと最後だけでいいなという判断もできますが、これらの分岐はどこが最初で最後かわからないので、全数やるべきです。時間がなければ飛ばし飛ばしでチェックするしかないでしょう。

こんな時はテストを疑う

結果がなんだかおかしいとき、実際に動作がおかしいのか、それともテストの方法が悪いのかを判断しなければなりません。
同じ操作を何回かやって、よくなったり悪くなったりするときは、テストがおかしいです。例えば年齢をDATEDIF関数で求めた時、今日は25歳でも、明日は26歳かもしれないし、それによって報酬額みたいなものも変わるかもしれないし、そういう動作させるごとに結果が違くなる場合もあるので注意します。
また、結果がきれいすぎるとき、例えば結果が基本0になるはずのもので、本当にすべての結果が0になっている時とかも、ちょっと疑ったほうがいいです。

テスト自体の確認

テストの方法は適切でも、その通りしっかり操作できていたかというと、それも完全にはわかりません。
ということで、テストの結果が悪かった時はもちろん、あまりにも結果が良すぎた時は、もう一度その操作をし、ちゃんと同じことが再現されるかを見極めます。

テストは一気に進むのか

テストは一気に進みません。
例えば、セルA1のテスト結果が良くなかったのであれば、セルA1を参照した計算式のテストを行うためには、セルA1が動作する計算式に直接値を入れてやるしかなくなります。その時点で、ワークシートは本来の動作からかけ離れた動作になるので、たとえ計算式が間違っていたとしても計算式に値をいれるといったことはしない方がおススメです。
次のテストに進むために、一時的に値を入れて元に戻してもいいのですが、どこまで値にしたかも混乱してしまうので、不具合を見つけたら、すぐに直す、見つけたら直す、として行った方がいいと思います。プログラムの場合はテスト、修正の作業は明確に分かれていますが、Excelでは見つけたらすぐに修正に手軽に取り掛かれるというメリットがあります。エラーが少ないのであれば、時間が早いのは一気にテストしてしまって終わったら全部まとめて修正とする方なのですが。

まとめ

今回は、Excelで作成したもののチェックについて書きました。
Excelで何かを作る方法についてはたくさんの情報を得られますが、それだけではExcel巧者にはなれません。今回のような修正方法を知ったり、どんなシートを作成するかをイメージする力も必要で、そのためには実務を理解することが一番の近道です。

コメント

タイトルとURLをコピーしました