- ベストアンサー
excelオートフィルタの検索条件をセルに入力したい
以下のようなexcelのリストがあるとします。 A B C~ 1 佐藤・鈴木 Aタイプ 2 田中・山田 Bタイプ 3 佐藤 Aタイプ 4 田中 Cタイプ 5 山田・鈴木 Cタイプ A列の"田"が含まれる行を抽出したい場合 オートフィルタをかけ、オプションの抽出条件の指定で "田"を含む、で検索すれば良い、というのはわかります。 ですが、この動作をもうちょっと簡単にできないかと思っています。 具体的には、以下のようにセルに入力して検索・抽出するとはできないでしょうか。 A B C~ 1 田 2 3 4 A B C~ 6 田中・山田 Bタイプ 8 田中 Cタイプ 9 山田・鈴木 Cタイプ (1、2行目=検索用 3行目=空き 4行目以降=リスト) 過去の質問で、同じようにセルに入力して抽出する方法を 聞いていた方がいらっしゃったので参考にしようと思ったのですが 方法がVBAを使ったもので、VBAの知識がまったく無いために さっぱり理解することができませんでした。 何か良い方法がありましたら教えていただけないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
関数でもできるのでご参考に。(imogasi方式) データ例 A1:B6に A B 佐藤・鈴木 Aタイプ 田中・山田 Bタイプ 佐藤 Aタイプ 田中 Cタイプ 山田・鈴木 Cタイプ E1に「田」の字を入れておく。 C2に =IF(ISERROR(FIND($E$1,A2)),"",MAX($C$1:C1)+1) C3:C6に式を複写する。C2:C6は 空白 1 空白 2 3 E3に =INDEX($A$1:$B$6,MATCH(ROW()-2,$C$1:$C$6,0),COLUMN()-4) と入れてF3に複写。 E3:F3を範囲指定し、F3に+ハンドルを出しF3まで引っ張る。 結果 田中・山田 Bタイプ 田中 Cタイプ 山田・鈴木 Cタイプ C列、E列、F列は別の列へ変えられる。別シートにも替えられる。 ただし式のセル指定・範囲指定、マイナスする値 を変えなければなりません。
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
タイトル行を加えて、ワイルドカードをつかって 1 氏名 2 *田* 3 4 氏名 5 佐藤・鈴木 6 佐藤 7 田中 8 山田・鈴木 のようにして、セルA4以下のリスト内を選択した状態で、 データ-フィルタ-フィルタオプションの設定で リスト範囲 :A4以下のリスト範囲 検索条件範囲 :$A$1:$A$2 で抽出されます。 データ-フィルタ-全て表示で戻ります。
お礼
フィルタオプションの設定も使ってみたりしたのですが、 選択した範囲が外れてしまって何度も再設定しなければならなかったり 前後に**を入れねばならなかったりと、 残念ながら手間の面ではオートフィルタとあまり変わりませんでした。 回答どうもありがとうございました。
お礼
関数でもできるのですね~ 早速試してみたところ、検索ワード入力後即結果表示と、 やりたかった動きが得られました。 表示させるためのスペースが必要なため、別シートに表示させる方法や A列だけでなくB列、C列でも検索できる方法を探さねばなりませんが、 その辺は自分でもできそうです。 とても助かりました。 どうもありがとうございました。