こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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シート自体に反映されても、別シートに作成されても構いません。

比較元の値が数個程度ならば、フィルタ機能でもなんとかなりそうですが、今回は数百件あり、しかも、規則性のない値なので、フィルタの抽出条件でもうまく導き出すことができません。

よろしくお願いいたします。

投稿日時 - 2006-06-12 17:15:14

QNo.2211305

暇なときに回答ください

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

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

投稿日時 - 2006-06-12 17:38:46

お礼

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

投稿日時 - 2006-08-07 20:35:54

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2006-06-12 21:26:11

お礼

返事が遅くなり、どうもすみません。

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

投稿日時 - 2006-08-07 20:38:32

ANo.2

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

投稿日時 - 2006-06-12 17:47:15

お礼

返事が遅くなり、どうもすみません。

回答いただいたやり方をためしてみたところ、うまくいきました。
ありがとうございました。

投稿日時 - 2006-08-07 20:36:46

あなたにオススメの質問