プロが教える店舗&オフィスのセキュリティ対策術

エクセルを使った積集合の求め方を教えて頂けないでしょうか。

具体的には、A列とB列に下記のような語彙リストが記入されています。

A列  B列
dog  cat
cat  rid
fat  fed
got  ted
rid  fight

AとBの双方に含まれている語彙だけを抽出して、C列にリストアップさせたいと思っています。

ご存知の方、いらっしゃいましたら、ご教示下さい。
どうぞよろしくお願いします。

A 回答 (6件)

C1に


=INDEX(A:A,SMALL(IF($A$1:$A$5=TRANSPOSE($B$1:$B$5),ROW($A$1:$A$5),9999),ROW(C1)))&""
と記入し,必ずコントロールキーとシフトキーを押しながらEnterで入力し,下向けにコピーします。
    • good
    • 0
この回答へのお礼

簡潔な作業で出来る式を教えて頂き、ありがとうございました。
とても助かります。

お礼日時:2012/02/23 15:47

例示のデータのようにA1セルからデータが入っているなら、以下の式を入力して下方向にオートフィルコピーしてください。



=INDEX($A$1:$A$100,SMALL(INDEX(ISNA(MATCH($A$1:$A$100&"",$B$1:$B$100&"",0))*1000+ROW($A$1:$A$100),),ROW(A1)))&""
    • good
    • 0
この回答へのお礼

私のPCの画面が小さいせいか、式が途中で切れており最後まで読めませんでした。せっかく教えていただきましたのに申し訳ありません。

お礼日時:2012/02/23 15:49

あわてて回答したので画像が間違っていましたorz



抽出先は、画像では「選択範囲内」になっていますが、説明文の通りに「指定した範囲」にしてください。
    • good
    • 0
この回答へのお礼

画像までつけて頂いて、ありがとうございました。ベストアンサーにさせて頂くかずいぶん迷ったのですが。。申し訳ありません。このたびはありがとうございました。

お礼日時:2012/02/23 15:50

恥ずかしながら再回答


各列の頭にデータの項目名を入れます。
図の例では「DataA」「DataB」
D1セルは空っぽにしておいてください。
D2セルに =(COUNTIF(A:A,B2)>0) と、入れます。
次にフィルタオプションで
 抽出先:指定した範囲
 リスト範囲:B:B
 検索条件範囲:D1:D2
 抽出範囲:C1

と設定して<OK>ボタンを押してみてください。
A列、B列どちらにも含まれるものだけがC列に表示されます。
「積集合の求め方」の回答画像3
    • good
    • 0

ANo.1です。


失礼、ものすごい勘違いをした回答してしまいました。
先の回答は無視してください。
    • good
    • 0

フィルタでやるやり方を



D1:D2を検索条件用に使います。
D1セルは空っぽにしておいてください。
D2セルに =(COUNTIF(A:A,B1)>0) と、入れます。
次にフィルタオプションで
 抽出先:指定した範囲
 リスト範囲:B:B
 検索条件範囲:D1:D2
 抽出範囲:C1

と設定して<OK>ボタンを押してみてください。
A列、B列どちらにも含まれるものだけがC列に表示されます。
「積集合の求め方」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!