Sleeping Viper

時々更新します。

Excel 表同士の差分チェック

Excel管理表がたくさんあって、定期的に最新情報に更新する必要がある場合があります。

今回の依頼は年1回見直す頻度のものですが、マスターをいったんコピーして、それを各受け持ち担当者が取捨選択や更新を加えたものと、マスターとの比較です。

 

でも、今回は行単位でお互いに各データがある・ないの判別がつけば良いとのことでした。しかも各データを特定するためのキー項目もしっかりしていたのでお互いの表に各キーが存在するかしないかを見比べるだけでよかったのです。

 

私はこのような依頼のときはキー項目列の隣などに判定列を作らせてもらい、そこに各キーが相手の表中にあるかどうか判定文を入れることが多いです。表同士が別BOOKの時はいったん両者を新規BOOK内の個別シートとしてコピーしてから作業します。これだと原本を誤って壊してしまうリスクも回避できます。

 

各キーが相手の表のキー範囲の中にあるかどうかVLOOKUP()を設定します。相手側にキーが存在しないとエラーになるので、ISERROR()に入れて使用します。IF文によりVLOOKUP()の結果が正常であれば相手の表に「有り」、エラーが返ってくれば「無し」という理屈です。

これを両方の表に入れてお互いをチェックします。

 

ただし、これだけですとキーが重複して存在していた場合などは正確に1対1が保証できないのでもう少し見比べるための文を入れる必要があります。(同じキーが複数ある時点で問題あるのですが)今回はそういったことがない前提でしたので、これで作業終了としました。