- ベストアンサー
指定した複数範囲の値に一致する行を抽出するには
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シート自体に反映されても、別シートに作成されても構いません。 比較元の値が数個程度ならば、フィルタ機能でもなんとかなりそうですが、今回は数百件あり、しかも、規則性のない値なので、フィルタの抽出条件でもうまく導き出すことができません。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
次の方法は如何でしょうか。 (1)シートBに作業列D列を設け、D1に=IF(COUNTIF(シートA!A:A,A2)>0,"○","")を入力し、下方向にコピー (2)シートBをオートフィルタし、○を抽出
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
自称imogasi方式でできます。 シートBにおいて =IF(COUNTIF(シートA!A:A,A2)>0,MAX($D$1:D1)+1,"") とシートAに見つかった行に、上から連番を振ります。 シートCで、各行番号と一致する、この連番の行を見つけてデータ項目を採ってきます。INDEXとMATCH関数を使います。OKWAVEでimogasi方式で照会してくだされば、この方法は沢山の質問に回答してますので、ここでは省略します。
お礼
返事が遅くなり、どうもすみません。 参考になりました。まだ試してはいませんが、今度試してみようと思います。アドバイスいただき、どうもありがとうございました。
No.1の方と似たような方法ですが、MATCH関数を使ってデータを検索したのち、結果を並べ替えするというのはどうですか。 シートBのD列に =MATCH(A2,シートA!$A$2:$A$4,0) というふうに入れると、シートAにマッチングするコードがある場合、その行が表示されます。
お礼
返事が遅くなり、どうもすみません。 回答いただいたやり方をためしてみたところ、うまくいきました。 ありがとうございました。
お礼
返事が遅くなり、どうもすみません。 回答いただいたやり方でうまくいきました。 ありがとうございました。