Excelを2つ開いて、左右に並べる。
片方を見て、もう片方を見る。
「あれ、この金額さっきと同じだったっけ?」と戻る。
はい。これ、かなり危ないです。
差分確認というと地味な作業に見えますけど、実際には「追加された」「消えた」「値が変わった」を同時に追っています。人間の目でやるには、思っている以上に条件が多いんですよね。
私はシステムエンジニアとして15年以上、ExcelやCSVを使った業務改善に関わってきました。ココナラでも200件以上の取引を経験していますが、相談で本当によく出てくるのが、この「見比べる作業」です。
大きなシステムの話ではありません。
・先月と今月の商品一覧
・更新前と更新後の顧客リスト
・システムから出した2種類のCSV
・修正前と修正後の管理表
こういうものです。
目視比較で怖いのは、間違えてもエラーが出ないこと
Excelの関数エラーなら、まだ分かりやすいです。
#VALUE! や #N/A が出れば「何かおかしい」と気づけます。
でも、差分確認の見落としは普通の数字のまま通ります。
100,000円が110,000円に変わっていても、セルは赤くなりません。
商品コードが1件消えていても、Excelは警告してくれません。
行数が数十件なら目でも追えます。ところが数百件、数千件になってくると、もう気合いの世界です。
そして気合いは自動化できません。(むしろ一番自動化したい)
VLOOKUPを組めば解決、とは限らない
差分確認でよく使われるのがVLOOKUPやXLOOKUPです。
もちろん便利です。私も使います。
ただ、毎回そのためだけに列を追加して、参照範囲を指定して、式をコピーして、結果を確認して……という作業をしているなら、すでに「確認するための作業」が発生しています。
さらに、確認したい内容によって式が変わります。
・片方にしか存在しない行
・両方にあるけど金額だけ違う行
・追加されたデータ
・削除されたデータ
・複数列の変更
ここまで来ると、Excel関数を作ることが目的になりがちなんですよね。
本来やりたいのは「違うところを知ること」です。
差分確認は「比較」と「判断」を分けると楽になる
私がこういう作業を仕組みにするときは、全部を自動化しようとはしません。
まず機械にやらせるのは「比較」です。
たとえば、
1. 旧ファイルを読み込む
2. 新ファイルを読み込む
3. 商品コードやIDなどを基準に照合する
4. 追加された行を抽出する
5. 削除された行を抽出する
6. 値が変わった行を抽出する
7. 結果だけ一覧にする
ここまでを自動化します。
最後に「この変更は正しいのか」を判断するのは人です。
これが意外と大事です。
全部自動で更新してしまうと、間違ったデータまで反映する可能性があります。だから、変更候補を機械に出させて、人はそこだけ確認する。
この役割分担がかなり使いやすいです。
実務では「全部見る」より「変わったところだけ見る」
業務改善をやっていると、つい「作業をゼロにする」方向に考えがちです。
でも私は、確認作業ではゼロを目指さなくてもいいと思っています。
1000行を全部見る状態から、変更された20行だけを見る状態になれば、仕事の中身はもう別物です。
しかも、その20行を
・追加
・削除
・変更
に分けて出せれば、確認する人も迷いません。
これは在庫、売上、顧客、商品、請求、マスターデータなど、かなり多くの業務に使えます。
「それだけ欲しい」人向けに完成品も作りました
こうした相談を受ける中で、毎回フルオーダーで開発するほどではないケースも多いと感じていました。
「2つのExcelかCSVを比較して、追加・削除・変更だけ分かればいい」
それなら、最初から使えるものがあった方が早いです。
そこで、Windows環境で使える「Excel・CSV差分比較ツール」をコンテンツマーケットに出しています。
▼ Excel・CSV差分比較ツール|追加・削除・変更を自動抽出
2つのファイルを読み込み、キーとなる列を基準にして差分を確認するためのツールです。
毎回VLOOKUP用の列を作ったり、2画面で見比べたりする作業を減らしたい方には合うと思います。
ただし、会社ごとのExcelはだいたい一筋縄ではいきません
ここは先に言っておきます。
実務のExcel、クッッッソ素直じゃないことがあります。
見出しが2段になっていたり、途中に空行があったり、「この列とこの列を組み合わせて同じデータと判断してほしい」みたいな独自ルールがあったりします。
その場合、完成品ツールをそのまま使うより、業務に合わせて作った方が早いです。
私はExcel、VBA、Python、GAS、Webシステムまで対応しているので、
「この2ファイルを毎月比較している」
くらいの状態からでも大丈夫です。
▼ Excel/Python/GASの自動化相談・開発
何を作ればいいか決まっていなくても、今の作業を見れば「ここまでは既製ツール」「ここからは個別開発」という切り分けもできます。
差分確認を人の集中力に任せているなら、一度だけでも作業を分解してみてください。
意外と、見る仕事ではなく「違うところだけ出す仕事」に変えられます。