• ベストアンサー

指定した複数範囲の値に一致する行を抽出するには

Excelで、シートAには商品コード一覧が入力されています。シートBには、シートAに登録されていない商品も含めた商品コード一覧が入力されています。 いま、シートBにおいて、シートAに登録済みの商品コードの行のみを抽出したいのですが、どのようにすればよいかわかりません。 具体的に書くと、 【シートA】 商品コード 商品名 商品単価 AAAA    商品A 100 BBBB    商品B 150 CCCC    商品C 170 【シートB】 商品コード 数量  注文日 AAAA    50   06/01 YYYY    30   06/01 CCCC    10   06/02 XXXX    30   06/02 BBBB    50   06/03 ZZZZ    30   06/04 上記例の場合、抽出結果が AAAA    50   06/01 CCCC    10   06/02 BBBB    50   06/03 となるような方法を探しています。 関数を使用しても構いません。 抽出結果は、Bシート自体に反映されても、別シートに作成されても構いません。 比較元の値が数個程度ならば、フィルタ機能でもなんとかなりそうですが、今回は数百件あり、しかも、規則性のない値なので、フィルタの抽出条件でもうまく導き出すことができません。 よろしくお願いいたします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法は如何でしょうか。 (1)シートBに作業列D列を設け、D1に=IF(COUNTIF(シートA!A:A,A2)>0,"○","")を入力し、下方向にコピー (2)シートBをオートフィルタし、○を抽出

nihonkai2002
質問者

お礼

返事が遅くなり、どうもすみません。 回答いただいたやり方でうまくいきました。 ありがとうございました。

その他の回答 (2)

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

自称imogasi方式でできます。 シートBにおいて =IF(COUNTIF(シートA!A:A,A2)>0,MAX($D$1:D1)+1,"") とシートAに見つかった行に、上から連番を振ります。 シートCで、各行番号と一致する、この連番の行を見つけてデータ項目を採ってきます。INDEXとMATCH関数を使います。OKWAVEでimogasi方式で照会してくだされば、この方法は沢山の質問に回答してますので、ここでは省略します。

nihonkai2002
質問者

お礼

返事が遅くなり、どうもすみません。 参考になりました。まだ試してはいませんが、今度試してみようと思います。アドバイスいただき、どうもありがとうございました。

noname#26871
noname#26871
回答No.2

No.1の方と似たような方法ですが、MATCH関数を使ってデータを検索したのち、結果を並べ替えするというのはどうですか。 シートBのD列に    =MATCH(A2,シートA!$A$2:$A$4,0) というふうに入れると、シートAにマッチングするコードがある場合、その行が表示されます。

nihonkai2002
質問者

お礼

返事が遅くなり、どうもすみません。 回答いただいたやり方をためしてみたところ、うまくいきました。 ありがとうございました。

関連するQ&A