• ベストアンサー

エクセルで同じ言葉を検索する

うまくタイトルを入れられませんが、よろしくお願いします。 これまでにレンタルしたビデオとDVDのリストがあります。 A列には、ビデオのタイトル、B列にはDVDのタイトルが入れてあります。 この、A列とB列の両方に入っているタイトルだけをC列に表示させたいのです。 どんな関数を使えば一発で出来るでしょうか。 教えてください。

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

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

C列に =IF(ROW(A1)>MATCH("",A:A,-1),"",INDEX(A:A,SMALL(IF(ISNUMBER(MATCH($A$1:INDEX(A:A,MATCH("",A:A,-1)),B:B,0)),ROW($A$1:INDEX(A:A,MATCH("",A:A,-1))),MATCH("",A:A,-1)+1),ROW(A1)))&"") と式を記入してコントロールキーとシフトキーを押しながらEnterで入力し,下向けにつるつるっとコピーして入れておく。

nishikyo
質問者

お礼

さっそくのご回答ありがとうございました。 こんな難しい式なんですね。 コピーさせていただきます。

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

No3の回答に誤りがありました。 正しくは、以下の式を入力して下方向にオートフィルしてください(A2セル以下にデータが入力されている場合)。 =INDEX(A:A,SMALL(INDEX(ISNA(MATCH($A$2:$A$100,$B$2:$B$100,0))*100+ROW($A$2:$A$100),),ROW(A1)))&""

nishikyo
質問者

お礼

ご丁寧に訂正版までありがとうございます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

1行目に項目があり、2行目からデータが(100行以内)入力されているなら、以下の式を入力して下方向にオートフィルコピーすれば、重複するデータが表示できます。 =INDEX(A:A,SMALL(INDEX(ISNUMBER(MATCH($A$1:$A$100,$B$1:$B$100,0))*100+ROW($A$1:$A$100)+1,),ROW(A1)))&"" ちなみに、データが3行目から入力されている場合は「+1」の部分が「+2」になり、項目名がない場合は「+1」の部分を削除してください(データ開始行-1を加算)。

nishikyo
質問者

お礼

さっそくのご回答ありがとうございます。こんな難しい式をよくご存知ですね。。。感心します。自分ももっとエクセルを勉強しないといけないなぁ・・・。

回答No.2

そのような関数は存在しません。 IF,ISNA,MATCHを組み合わせて数式にすると添付図のような結果が得られます。 C2セルに =IF(ISNA(MATCH(A2,$B$2:$B2,0)),IF(ISNA(MATCH(B2,$A$2:$A2,0)),"", IF(ISNA(MATCH(B2,$C$1:C1,0)),B2,"")),IF(ISNA(MATCH(A2,$C$1:C1,0)),A2,"")) 下へオートフィル

nishikyo
質問者

お礼

さっそくのご回答ありがとうございます。 そんな関数はないんですか・・・。自分で作るとなると、難しい式ですね・・・。 使わせていただきます。

関連するQ&A