• ベストアンサー

エクセルで別々な2つのデータをマッチングし抽出する

1つのデータには、全国のお店の住所データが約3000件あります。 項目はAからF列でそれぞれ 〒(3桁)、〒(4桁)、都道府県名、住所、電話番号、お店 となっています。 2つ目のデータには個人の住所データが約5800件あります。 項目はAからF列でそれぞれ 〒(3桁)、〒(4桁)、都道府県名、住所、電話番号、名前 となっています。 個人データにある市区町村と施設の市区町村のデータで 同じものがある場合に、その該当のお店のデータを使いたいのです。 IF関数でお店のG列に =IF(A2=個人!A2:A5800),"○""×" という式を入れましたが、うまくいきませんでした。 違っている部分か、その他の方法を教えてください。 長々とわかりにくい文章で申し訳ございません。

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

  • ベストアンサー
  • sero
  • ベストアンサー率47% (916/1944)
回答No.6

○×表示させたいだけなら単純に「お店」シートのG2に =IF(ISERROR(MATCH(A2,個人!$A$2:$A$5800)),"×","○") と入れて必要な分だけコピーすればOKです。

sheva07
質問者

お礼

ありがとうございました。 もとのデータの不具合ということもあり、完璧ではないようですが、 だいぶイメージに近いものができた気がします。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

長いというより質問の意味が、読む者に伝わりにくい。 例データ(簡単にします。) Sheet2 A1:C4(お店データ、会社データ。所在地とでもしましょうか) 東京都 A社 青梅市 神奈川県 B社 横須賀市 静岡県 C社 沼津市 Sheet3 A2:D10(C,D列は関数で、引っ張ってきた結果。元データはA,B列のみ) 個人別表。個人が行くべきお店とでも意味づけましょうか。 山田 静岡県 C社 沼津市 木山 東京都 A社 青梅市 大木 静岡県 C社 沼津市 横田 神奈川県 B社 横須賀市 大下 東京都 A社 青梅市 青山 神奈川県 B社 横須賀市 木下 東京都 A社 青梅市 上島 静岡県 C社 沼津市 C3に=OFFSET(Sheet2!$B$2,MATCH(B3,Sheet2!$A$2:$A$10,0)-1,0) C4以下に式を複写する。 D3に=OFFSET(Sheet2!$B$2,MATCH(B3,Sheet2!$A$2:$A$10,0)-1,1) といれ、D3の式をD4:D10まで複写する。 結果は上記C列、D列のとおり。

sheva07
質問者

お礼

ありがとうございます。少し私にはわからない式なので 勉強してみます。

  • aiho
  • ベストアンサー率42% (3/7)
回答No.4

ご質問の意味を推察しますに、 1.「個人」のシートのそれぞれのデータについて、  A列(郵便番号)を参照し、「お店」のシートのA列すべてと比較し、  ひとつでも同じものが含まれていれば○、そうでなければ×  を表示する。 ということでしょうか?  であれば、 =IF(COUNTIF(個人!A2:A5800,A2)>0,"○","×")  といった式になるのではないでしょうか。 2.タイトルに「抽出」とありますので、  別シートから郵便番号が同じものを探してきて、  探してきたデータの別の項目(電話番号など)を抜き出したい。  ということでしたら、 =VLOOKUP(A2,個人!A2:F5800,5,FALSE)                   ↑抜き出したいデータの左から数えた順番* *この場合、範囲がA~Fまでを検索し、左から5番目(電話番号)を抜き出す場合の例です。 都道府県なら3, 住所なら4と抜き出したいデータにあわせて変えてください。

sheva07
質問者

補足

抽出したいデータは該当するお店のデータを○として その○のデータを使用したいと考えています。 なので、1については「個人」と「お店」が逆になるのかと思います。 2はある列ではなくて、そのお店のデータを使用したい ので抽出という言葉がお店のデータ全部にかかっていると思っているつもりです。

  • shmaru
  • ベストアンサー率52% (13/25)
回答No.3

ぱっと見ただけですが、 =IF(A2=個人!A2:A5800),"○""×"   ↓ =IF(A2=個人!A2:A5800,"○","×") とか。 的外れだったらすみません。

sheva07
質問者

お礼

ありがとうございます。 試してみます。

sheva07
質問者

補足

=IF(A2=個人!A2:A5800,"○","×")で試してみました。 やはり対象があるのに×が表示されます。 私が思っているものと式が違っているのでしょうか 何をどうしたらよいのか、もっと詳しくならないと できないということなのでしょうか... できないとなると1データずつ見ていくしかないのですかねぇ・・・(すみません。愚痴ってしまいました)

  • lasichi
  • ベストアンサー率31% (122/389)
回答No.2

=IF(A2=個人!A2:A5800),"○""×" を単純に解説するとお店の郵便番号三桁と同じデータが 個人データのシートにあった場合に"○"、なかったら"×" を表示ということになります。 「うまくいきません」というのが自分がやろうとしている結果にならないのか計算式が間違ってエラーになるのか教えてもらえますか?

sheva07
質問者

補足

単純に解説していただいた通りです。 それが同じものがあるのに○にならず、×になってしまいます。

  • sero
  • ベストアンサー率47% (916/1944)
回答No.1

・マッチングの条件は郵便番号の上3桁だけで良いのか? ・「該当のお店のデータを使う」とは具体的にどういう結果を表示させたいのか? 最低限これくらいは判らないと・・・ ・マッチングの条件が郵便番号程度だと複数の店が該当すると思われるが、その場合どうするのか? という点も明らかにしたほうが良いでしょう。

sheva07
質問者

補足

パスがわからず遅くなりました、すみません。 ・マッチングの条件は郵便番号の上3桁だけで良いのか? >広く拾いたいので、郵便番号の上3桁でと考えました。 ・マッチングの条件が郵便番号程度だと複数の店が該当すると思われるが、その場合どうするのか? >今あるデータでは個人が重複する可能性があり、お店は  重複しないと考えられます。  やりたいことは個人データにある住所(同市区町村)と  同じお店のデータを抽出したいと考えています。

関連するQ&A