データの抽出方法とマッチングについての質問

このQ&Aのポイント
  • エクセルでのデータ抽出方法とマッチングについて教えてください。
  • 異なるファイルに保存されたデータAとデータBをマッチングする方法を知りたいです。
  • データBの該当する列をデータAの特定の列にコピーする方法を教えてください。
回答を見る
  • ベストアンサー

データの抽出

エクセルの使用方法で、質問です。 一つのファイルに入っているデータB  ×××   ○○○   △△ 1------   ------   ---- 2------   ------   ---- 3------   ------   ---- 4------   ------   ---- ・ ・ ・ と、もう一つのファイルに入っているデータA  ×××   ○○○   △△  ■■■ 1------   ------   ---- 2------   ------   ---- 3------   ------   ---- 4------   ------   ---- ・ ・ ・ の△の行のマッチングを行い、重複している列に、データBの該当している列のコピー■の行に 書き出したいのですが、何かいい方法はないでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

VLOOKUP関数は,元のご相談に説明されていたように検索のキーとなる列(△の列)の「右側」にある■のデータを参照するのに使います。 補足じゃなく実は元のご相談の説明がウソで,正しくはキーとなる△列の「左側」のデータを参照したいというときは,別の関数を使わなければいけません。 #補足 元のデータAでキーとなる△列を「表の左端のA列」に移動または複製して置いておけば,VLOOKUP関数で計算できます。その場合の計算式は,先の回答でお話ししたのと全く同じになります。このやり方が,エクセルでは一番簡単な数式で出来ます。 #補足 追加のご質問が来る事を想定していませんでしたので前回回答では言いませんでしたが,ご相談投稿では必ずご利用のソフト名は元より,ご利用のソフトのバージョンまでキチンと明記することを憶えてください。ご利用のソフトのバージョンによって,もっと簡単にできる場合もあります。 さて,実際にやりたかったのは。 元のデータのO列から,H列のデータを検索します。 また追加ご質問でもシート名とか相変わらずナイショのままなので, Sheet1に元データのA Sheet2に作成したい表のB があります。 シート2のI1には =IF(COUNTIF(Sheet1!$O:$O,$H1),INDEX(Sheet1!A:A,MATCH($H1,Sheet1!$O:$O,0)),"") と記入し,右に下にずらっとコピーして埋めておきます。 #補足 元のデータ(A)が「非常に沢山の行数がある」場合,シート2のI列に上記式のMATCH関数の部分だけ取り出してまず並べておき,J列以降に,やはり上述した数式の残りの部分でI列で計算した数字とINDEX関数を使いデータAの該当するデータを引っ張ってくると,計算が早くなります。

HiT0108
質問者

お礼

ありがとうございました。 ちょっと、使う用途上、色々と伏せさせていただきました。すみません。 以後、気をつけます。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

どの列のデータが一致していたら「同じ行」と判定するか,によってやり方が変わります。 今回は >△の行のマッチングを行い という事なので,一番シンプルにVLOOKUP関数で計算します。 手順: A,B共に△がC列であるとして。 データAはSheet1に データBはSheet2に それぞれあるとして。 Sheet2(データB)のD1に =IF(COUNTIF(Sheet1!C:C,C1),VLOOKUP(C1,Sheet1!C:D,2,FALSE),"") と記入し,リスト下端まで埋めておきます。 言わずもがなですが,シート名などは正しく修正して計算させます。 それぞれが別ファイルにあるのでしたら一回同じファイルにシートを移動して束ねてから上述のようにして計算させ,その後元のファイルにシートを戻してやると,間違い無く作成できます。 教わらなくても出来るなら,もちろん別ブックのまま計算しても構いません。

HiT0108
質問者

補足

補足させてください。 詳しく書くと 元のデータA(抽出するに当たり元となるデータは)   A・・・・・O 1 2 3 ・ ・ ・ とあり、 もう、片方のデータBは   A・・・・・・H 1 2 3 ・ ・ ・ とありH列の中に、O列の中に重複するデータがある場合、 データBのI 列以降にデータA O列の中で重複している行(A~O) をコピーさせたいのです。 関数式を教えていただけませんでしょうか。。。 よろしくお願いいたします。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

vlookup関数を使ってはいかがでしょう。

関連するQ&A

  • エクセルでデータの抽出方法

    Windows7、エクセル2010を使用しています。 エクセルで、指定したセルのデータを抽出する方法についての質問です。 エクセルに60000行×1列のデータがあるとして、 その中から99行目、199行目、299行目、・・・59999行目のデータを抽出しなければなりません。 手作業でコピーするのは時間的に非現実的なので、なにか抽出する方法はないでしょうか? 100行単位で列を変えれば、99行目のみをコピーし、行と列を置き換えればいいと思うのですが、そんなことは可能なのでしょうか? そのほか、何か方法があれば教えてください。

  • 重複データの削除

    お世話になります。 現在、仕事でお客様のデータ(5万件くらい)を扱っています。 しかしデータをエクセルに取り込むシステムに難があり、同じお客様のデータを重複して取り込んでしまうことがあります。 そこで質問ですが、約5万件あるデータの中から効率よく重複データを削除する方法はありますか? 懸念事項は、同姓同名の方は削除してはいけないという点です。 データ項目は「名前」「住所」「生年月日」「性別」とあるので、 同姓同名でも生年月日や住所で判定することができます。 ちなみに私の考えは、 A列に名前、B列に生年月日とすると・・・ 1)ソート:優先順位はA列⇒B列 2)C列にIF(A1=A2,"重複","OK")として行方向へコピー   D列にIF(B1=B2,"重複","OK")として行方向へコピー   E列にIF(AND(IF(C1="重複",D1="重複")=TRUE,"重複","OK")として行方向へコピー 3)E列で"重複"でフィルタリングし、フィルタされた行の削除 スマートではないですが、私の知識では精一杯です。 何かスマートな方法はないものでしょうか? よろしくお願いいたします。

  • Excel2013 同一列の抽出

    Excelの使い方について、教えていただいたく思います。 Win7 Excel2103を使用しています。 とあるデーターの同一行にて、A列、B列の値が同一のものだけを抽出する方法を探しております。 当方、あまりExcelに詳しく無い為、よろしくお願い申し上げます。 【例】       A列      B列 1行目   123     234 2行目   567     123 3行目   123     123 4行目   234     123 5行目   234     234 6行目   234     567 ・ ・ ・ 3行目、5行目がA列、B列が同一の為、抽出できないでしょうか? 該当行の色分け、不要行の削除等、方法は問いません。 宜しくお願い申し上げます。

  • Excel データの抽出について教えて下さい。

    初めて質問させて頂きます。 Excelでデータの抽出と言ったらいいでしょうか・・・ 「一定の条件に当てはまった場合に、別のセルに数字を入力する」 というような処理をしたいのですが、データ量が多くて、 どのようにやったら効率がいいのか、頭を悩ませています。 例えば・・・       A列  B列 1行目  111   A 2行目  112   B 3行目  115   C 4行目  115   C 5行目  118   D といったようなデータが1500件ほどあります。 このデータを使って、A列の中で番号が2つ(又は3つ等)あるものに、      A列   B列  C列 1行目  111   A 2行目  112   B 3行目  115   C    1 4行目  115   C    1 5行目  118   D といった感じで決まった数字を表示する方法がないでしょうか? こんな説明でご理解頂けるかどうか、心配なんですが・・・。 いい方法をご存知の方がいらっしゃいましたら、力を貸して下さい。

  • エクセルの重複データを抽出し、最新のデータを残した

    エクセルの重複データを抽出し、最新のデータを残したいです。 A列 B列 1 aaa@aaaa.co.jp 2014/1/1 2 bbb@aaaa.co.jp 2013/1/2 3 aaa@aaaa.co.jp 2014/1/10 4 aaa@aaaa.co.jp 2014/10/10 A列にアドレス、B列に日付が入っているデータがあります。 (他にC列などにも顧客情報が入っています。) アドレスの重複データを抽出し、最新の日付の行が残るようにしたいです。 この場合ですと2と4が残るようにしたいです。 膨大なデータの為、困っています。 良い方法をご存知の方、よろしくお願い致します。

  • 重複データの抽出

    重複した数字のデータを抽出してまとめたいのですが教えていただけないでしょうか? 例えば A列    B列   1245     1365     1245 1398 1365 1155 1245 この表を      A列    B列   1245    1245 1365    1365 1245    1398 1398    1155 1365 1155 1245 のようにまとめたい A列の重複したデータを抽出しB列にまとめたいのですが、なるべく関数でやりたいのですが、良い方法をお願いいたします。

  • エクセル マクロ? 関数? データの抜き出しと

    エクセル2010を使っています。 画像のオレンジの部分の様なデータがあります。 A列とB列に重複したデータが複数有り、D列に重複なしの氏名(A列のデータの重複なし)を表記しました。 D列の上からの氏名のデータをA列から探して該当する氏名のB列のデータを、E列、F列、G列と右に表示したいと思います。 A列B列は現状で16000行ほど。 D列は重複は無く、900行ほどあります。 ですので出来るだけ負担の無い形で抜き出したいです。 詳しい方、よろしくお願い致します。

  • 重複しないデータの抽出について

    こんにちわ。 エクセルでつぎのようなリストがあるとします。A,B列セットで重複しないデータを一度に抽出したいのですが、どうしたらいいですか?    A列     B列     1     1     1 2     1     2     3     2     1 4     1     2 5     2     2 6     1     1 結果 A列    B列       1    1       1    2       2    1      2    2

  • Excel シート間のデータ抽出と置き換え

    AとBのシートを比較して、 Aと同じ単語のあるセルがBにもあった場合には、 該当単語のある行から、特定セルの内容を、 Bのシートの該当行(同単語のある行)の特定場所にコピーする。 説明がヘタですみません。 例を挙げますと、 <Aのシート> A1:あ B1:Goo A2:い B2:Yahoo A3:う B3:Google <Bのシート> A1:あ B1:データなし A2:か B2:データなし A3:さ B3:データなし この様な場合、 AシートA1のデータ"あ"は、BシートのA1にもありますので、 その場合には、B1データの"Goo"を BシートのB1にコピーし <Bのシート> A1:あ B1:Goo A2:か B2:データなし A3:さ B3:データなし と、なるようすることを関数だけで行うことは可能なのでしょうか。 自分なりに色々調べてみたのですが、該当例を探すことができませんでした。 ご存知の方がいらっしゃいましたらご教授ください。 補足説明といたしまして、 データは全て文字です。 B1のシート内で検索データが重複することはありません。 検索語(検索対象語)の文字列にスペース(半角・全角共)含まれていた場合 そのスペースは検索対象から除外(無視)して認識する。 検索語は複数あります。 できれば、一括で行いたいのですが、それですとVBAでないと無理でしょうか。 宜しくお願いいたします。 教えてGooさんの枠を超えた質問であれば申し訳ありません。

  • エクセルでデーターを比較削除したいのですが。

    エクセルでの質問です。 エクセルで、A列に1万件ほどの電話番号が入っているとしまして、B列に1000件ほどのやはり電話番号が入っているとします。A列のデーターとB列のデーターを比較しまして、もしB列のデーターと同じものがA列にある場合、A列の該当しますデーターを削除したいのですが、エクセルでそのような事が出来るのでしょうか?重複データーの削除で検索してみたのですが、いまいちよく理解できなかったものですから投稿させて頂きました。ご存知のお方がいらっしゃいましたらば、御教示頂きたいのです。エクセルは、2007を使用しております。宜しくお願い致します。

専門家に質問してみよう