• ベストアンサー

エクセルで、複数ヒットする条件を一覧表示する関数

調べてもいまいち私の条件にあうサイトが見つからなかったので質問させて頂きます。 エクセルにて例えばA列1~100行にお菓子の名前が並んでいます。 B1セルにお菓子の名前を入力する事で、A列から条件にヒットする名前をピックアップしてC列に表示させたいのですが、 そのお菓子の名前の一部を入力する事で、その条件に当てはまるお菓子を一覧表示したいのです。 つまり例えばB1セルに「ポテチ」と入力しても、A列には「ポテチのりしお」「ポテチこんそめ」「ポテチバター味」などが該当するので、それらを全て表示したいです。 この条件を満たす様にするには、C列にはどう関数を入力すれば宜しいでしょうか。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

基本的には回答No.3と同じですが配列数式(Ctrl+Shift+Enterの打鍵が必要)にならないようにする方法として次の数式を提言します。 C1=IFERROR(INDEX(A:A,LARGE(INDEX((FIND(B$1,A$1:A$100&B$1)<LEN(A$1:A$100))*ROW(A$1:A$100),0),COUNTIF(A$1:A$100,"*"&B$1&"*")-ROW()+1)),"") または C1=IF(COUNTIF(A$1:A$100,"*"&B$1&"*")<ROW(),"",INDEX(A:A,LARGE(INDEX((FIND(B$1,A$1:A$100&B$1)<LEN(A$1:A$100))*ROW(A$1:A$100),0),COUNTIF(A$1:A$100,"*"&B$1&"*")-ROW()+1))) C1セルを下へ必要数コピーします。

rutohamuni2012
質問者

お礼

早いコメントありがとうございました!一番希望にそった答えだったのでベストアンサーとさせて頂きます。

その他の回答 (3)

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.3

添付図参照 C1: =IFERROR(INDEX(A$1:A$100,SMALL(IFERROR((FIND(B$1,A$1:A$100)>0)*ROW(A$1:A$100),""),ROW(A1))),"") 【お断り】上式は必ず配列数式として入力のこと

rutohamuni2012
質問者

お礼

早いコメントありがとうございました!私の説明足らずが原因なのですが、一番希望にそった答えとしてNo4さんをベストアンサーとさせて頂きます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.2

C1セルに以下の式を入れて下にドラッグコピーしてみてください。 =IF(IFERROR(FIND($B$1,A1),"")="","",A1)

rutohamuni2012
質問者

お礼

早いコメントありがとうございました!私の説明足らずが原因なのですが、一番希望にそった答えとしてNo4さんをベストアンサーとさせて頂きます。

  • k-josui
  • ベストアンサー率24% (3220/13026)
回答No.1

C1に=IF(COUNTIF(A1,"*"&$B$1&"*"),A1,"") これを一番下までドラッグ。 この場合「ポテチ」が前でも後ろでもヒットします。

rutohamuni2012
質問者

お礼

早いコメントありがとうございました!私の説明足らずが原因なのですが、一番希望にそった答えとしてNo4さんをベストアンサーとさせて頂きます。

関連するQ&A