質問: エクセルの重複データ抽出、削除についての質問です。 会社で事務をしている者です。2つの顧客リストから重複データを抽出し、それから重複データを削除しなくてはならなくなりました。具体的には以下の順序で行いたいのですが、素人なので方法がわかりません。皆様のお知恵をいただきたいとおもいます。よろしくお願いします。 顧客リストa 顧客番号氏名住所金額a 1聖徳太子奈良県奈良市480 2坂本竜馬高知県高知市150 3織田信長岐阜県岐阜市300 4徳川家康愛知県名古屋市320 5豊臣秀吉愛知県名古屋市180 6紫式部京都府京都市230 7真田幸村長野県上田市140 8土方歳三東京都日野市200 9宮本武蔵熊本県熊本市350 10福沢諭吉大阪府大阪市130 11上杉謙信新潟県上越市540 2、顧客リストb 氏名住所金額b 土方歳三東京都日野市250 千利休大阪府堺市280 織田信長岐阜県岐阜市300 武田信玄山梨県甲府市220 伊達政宗宮城県仙台市140 坂本竜馬高知県高知市200 聖徳太子奈良県明日香村380 福沢諭吉大阪府大阪市130 上杉謙信新潟県上越市500 西郷隆盛鹿児島県鹿児島市660 3、顧客リストa・bより氏名、住所の一致した先を検索し、金額aおよびbとともに別シートに抽出。 顧客番号氏名住所金額a金額b 2坂本竜馬高知県高知市150200 3織田信長岐阜県岐阜市300300 8土方歳三東京都日野市200250 10福沢諭吉大阪府大阪市130130 11上杉謙信新潟県上越市540500 4、抽出した顧客リストのうち金額a・bが同額である先を削除。 顧客番号氏名住所金額a金額b 2坂本竜馬高知県高知市150200 8土方歳三東京都日野市200250 11上杉謙信新潟県上越市540500 以上です。使用ソフトはエクセル2003です。 多少手間はかかってもわかりやすい方法でお願いします。
回答: 今仮に、 顧客リストaが存在しているシートのシート名が 顧客リストa 顧客リストbが存在しているシートのシート名が 顧客リストb 抽出した顧客リストが存在しているシートのシート名が 抽出先 であるものとし、各リストの1行目は、「顧客番号」、「氏名」、「住所」、「金額」等の各項目名がa1セルから順番に入力されていて、各データは、2行目以下に表示されているものとします。 又、上記のシートとは別個に、「補助」というシートを作成し、そのシートのa列とb列を作業列として使用するものとします。 まず、補助シートのa2セルに次の数式を入力して下さい。 =if(index(顧客リストb!$a:$a,row())="","",index(顧客リストb!$a:$a,row())&":"&index(顧客リストb!$b:$b,row())) 次に、補助シートのb2セルに次の数式を入力して下さい。 =if(countif($a:$a,"="&index(顧客リストa!$b:$b,row())&":"&index(顧客リストa!$c:$c,row())),row(),"") 次に、補助シートのa2~b2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。 次に、抽出先シートのa2セルに次の数式を入力して下さい。 =if(rows($2:2)>count(補助!$b:$b),"",if(index(顧客リストa!a:a,small(補助!$b:$b,rows($2:2)))="","",index(顧客リストa!a:a,small(補助!$b:$b,rows($2:2))))) 次に、抽出先シートのa2セルをコピーして、抽出先シートのb2~d2の範囲に貼り付けて下さい。 次に、抽出先シートのe2セルに次の数式を入力して下さい。 =if($b2="","",if(or(index(顧客リストb!$c:$c,match($b2&":"&$c2,補助!$a:$a,0))="",index(顧客リストb!$c:$c,match($b2&":"&$c2,補助!$a:$a,0))=$d2),"",index(顧客リストb!$c:$c,match($b2&":"&$c2,補助!$a:$a,0)))) 次に、抽出先シートのa2~e2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。 以上です。