• ベストアンサー

エクセル2007 データ抽出(関数)について

教えてください。エクセルシートにて郵便番号と住所が重複しているデータを抽出したいのです。 例)ある顧客の情報として、シート1のA列に、1から10までの新規顧客の氏名、B列には生年月日が入力されています。C列,D列は空白で、E列には全ての顧客(新規顧客を含みます)の氏名、F列には生年月日、G列には郵便番号、H列には住所が入力されています。このふたつの情報の中から、新規顧客データと全ての顧客データの氏名、生年月日が重複している顧客のみ、C列にその郵便番号、D列に住所を表示させたいのです。 OSはXP エクセル2007です。 困っています。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

ワークを2列(JとK)、贅沢に使います。 氏名と生年月日が一致するものが複数あると、上の方にマッチする。 氏名と生年月日の一方がなかったり、項目に抜けがあると0になったり、#N/Aになったりする。 C2:=INDEX($G$2:$G$100,MATCH($J2,$K$2:$K$100,0)) <#N/Aにしない> =IF(ISERROR(INDEX($G$2:$G$100,MATCH($J2,$K$2:$K$100,0))),"",INDEX($G$2:$G$100,MATCH($J2,$K$2:$K$100,0))) D2:=INDEX($H$2:$H$100,MATCH($J2,$K$2:$K$100,0)) <#N/Aにしない> =IF(ISERROR(INDEX($H$2:$H$100,MATCH($J2,$K$2:$K$100,0))),"",INDEX($H$2:$H$100,MATCH($J2,$K$2:$K$100,0))) J2:=$A2&$B2 K2:=$E2&$F2 (それぞれ)以下コピー

cool_man2
質問者

お礼

ありがとうございました。この方法で解決できました。

その他の回答 (2)

  • angkor_h
  • ベストアンサー率35% (551/1557)
回答No.2

以下は元データを触るので参考程度ですが、 E列以降を1行右にずらして、 E列に関数を追加します→(En)=Fn&Gn …氏名と生年月日を結合する。 C列の関数 → (Cn)=vlookup((An&Bn),($E$a:$I$z),4,false) D列の関数 → (Dn)=vlookup((An&Bn),($E$a:$I$z),5,false) n …式を書き込む行番号 (En)など …式を書き込むセル ($E$a:$I$z)…新たに作った「氏名と生年月日を結合」から始まる「全ての顧客」データ範囲 4 …4列目にある郵便番号 5 …5列目にある住所 その他 …氏名と生年月日は新規、「全ての顧客」の表示形式を一致させてください。 なお、一致するデータが無い場合は「#N/A」が表示されるので、無用ならば表示しない対策をしてください(エラー表示をしない関数を組み合わせ)。

cool_man2
質問者

お礼

ありがとうございました。 この方法でもできました。 素人のため、恥ずかしながら、 #N/Aの非表示がわかりませんでした。 しかし、助かりました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 1行目はタイトル行でデータは2行目以降にあるとします。 I列を作業用の列として使用します。 I2セルに =IF(E2="","",E2&F2) という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 C2セルに =IF(COUNTIF($I:$I,$A2&$B2),INDEX(G:G,MATCH($A2&$B2,$I:$I,0)),"") という数式を入れ列方向・行方向にオートフィルでコピーではどうでしょうか? 作業列が目障りであればI列を非表示にするか、 遠く離れた列を作業列にしてみてください。m(_ _)m

関連するQ&A

専門家に質問してみよう