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)"▲"やエラー値で表示される計算結果について、目視で確認する。
(終了)
お礼
7543492さま めぐみです。 こんなに早く回答をくださり本当にありがとうございました。 そして、頂いたマクロですが完璧でした。 わたくしのつたない説明を読んで下さりなおかつ完璧なご回答をくださり本当にありがとうございました。 心から感謝します。 本当にありがとうございました(ハード)(ハード)(ハード) めぐみ