Excel シート間のデータの照合
Excelで、シート間のお客様データ(だいたい各1万件)を照合します。下記は現在の照合方法ですが、これでは時間がかかるうえ手作業が多く発生しミスにつながります。頻繁に行う作業なので、関数でも、マクロでも、とにかくもう少し簡単にできる方法がありましたら、どうぞご教授ください。よろしくお願いします!!
【目的】
シート「sheet2008」には2008年度のデータ。シート「sheet2007」には「sheet2008」と同じ形式の2007年度のデータが入っています。シート「sheet2008」に、そのお客様の2007年度の担当営業マンを表示させたいのです。
【例】
列A(電話番号): 011-231-1112
列B(名前):佐藤 一郎
列C(住所):北海道札幌市中央区北1-1-1
列D(担当営業マン):鈴木
新規の列(2007年度の担当営業マン):鈴木
・「sheet2008」「sheet2007」はほぼ同じデータですが、一部のお客様は名前が変わっていたり、住所が変わっていたりします。
・「sheet2007」にないお客様が「sheet2008」にあったり、その逆があったりして、各シートのデータ件数は一致しません。
・名前が同じでも住所が違うデータ、電話番号が同じでも担当営業マンが違うデータは別者として扱います。
・「顧客ID」のような“必ずユニークな情報”は存在しません。
【現在の照合方法】
(1)「sheet2008」の各列の前に空白列を挿入する。
(データの1行目はタイトル行…B1:電話番号/D1:名前/F:住所/H:担当営業マン)
(データの2行目以降はデータ)
列A(空白行):
列B(空白行): 011-231-1112
列C(空白行):
列D(名前):佐藤 一郎
列E(空白行):
列F(住所):北海道札幌市中央区北1-1-1
列G(空白行):
列H(担当営業マン):鈴木
(2)「sheet2007」を列Aの電話番号で昇順に並べ替える。
(3)「sheet2008」の電話番号が「sheet2007」にあるかを調べる。
A2:「=IF(B2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,1,0)),"○","▲")」
(4)(3)で調べた「sheet2008」の電話番号と同じ行にある名前/住所が「sheet2007」にあるかを調べる。
C2:「=IF(D2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,2,0)),"○","▲")」
E2:「=IF(F2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,3,0)),"○","▲")」
(5)電話番号/名前/住所がすべて一致するデータについて、「sheet2007」にある担当営業マンの値を列Gに表示させる。
G2:「=IF((AND(A2="○",C2="○",E2="○"))=TRUE,(VLOOKUP($B2,Sheet2007!$A:$D,4,0)),"▲")
(6)"▲"やエラー値で表示される計算結果について、目視で確認する。
(終了)
補足
kakkysanさん 回答ありがとうございます。 >品名を利用できないとすると、非常に難しいことに なるような気がします。D列:重量、E列:単価、 F列:金額 が全く同じ 物をsheet1とsheet2で照 合しているのでしょうか? 品名は一言一句全く同じではないと言う意味です。 手作業では品名を見て見当をつけ、重量、単価、 金額を確認。すべて一致すれば照合OKとなり ます。 殆どのデータは一致します。 異なる場合は、 (1)単価が異なる事による金額不一致。 (2)重量が異なる事による金額不一致。 (3)どちらか一方の全く同じ内容、金額の二重計上に よる金額不一致。 (4)どちらか一方の計上漏れによる金額不一致。 1日500行~1000行ものランダムなデータの中から 合っていないデータを探すのは大変な作業です。 知恵をください。