• ベストアンサー

関数でエクセルのセル内の文字列の検索方法を教えてください。

エクセルであるセルの中に長い文字列が入力されているとします。 その隣のセルに単語を入力すると、もし長い文字列のなかにその単語があれば、文字列中の単語が選択されて、単語の有無が判断できるような、仕組みを作りたいのですが、エクセルで作成するのは可能でしょうか。 また、住所データのようなリストを作成し、別シートにおいて、あるセルに苗字のような単語を入力すると、コメントのような感じでリストから絞り込んで表示することはできるでしょうか。(隣のセルとかでもかまいません。)gooサジェストのような感じで、、、 教えてください、よろしくお願いします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

#3のmshr1962です。 >もし、青井さんが2人いた場合、住所が2つ表示される仕組み難しいでしょうか。 青井 東京都千代田区皇居外苑 赤井 東京都千代田区一ツ橋 青井 東京都東久留米市神宝町 のような場合ですか? 苗字と住所の間に一列挿入 B2=A2&TEXT(COUNTIF($A$2:$A2,A2),"00000") としてください。青井00001のようにナンバリング付きの検索キーになります。 表示側はA2に苗字を入力で B2=IF(COUNTIF(Sheet2!$A$1:$A$3,A2)>=ROW()-1,VLOOKUP(A2&TEXT(ROW()-1,"00000"),Sheet2!$B$1:$C$3,2,FALSE),"") これを必要行数分コピーしてください。 >また、井と入力することで青井さんと、赤井さんの、住所が、ピックアップできるような仕組みがあればなお、いいんですけど。 これはさすがに数式では難しいですね。 エクセル自体の機能を使って抽出でいいなら 苗字    検索文字 ="*"&B2&"*" 井 のように入力 「データ」「フィルタ」「フィルタオプションの設定」で 「指定した範囲」を選択して リスト範囲を元の表(苗字と住所:1行目は項目名がなければいけません) 抽出条件範囲にA1:A2(上記の苗字と数式の2セル) 抽出範囲にA4 としてOKするとA4以降のセルに条件に合致した内容がコピーされます。

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

>単語の有無が判断できるような、仕組 A2が文書 B2が検索文字として =IF(ISNUMBER(FIND(B2,A2)),"有","無") =IF(COUNTIF(A2,"*"&B2&"*"),"有","無") >コメントのような感じでリストから絞り込んで表示することはできるでしょうか。 青井 東京都千代田区皇居外苑 赤井 東京都千代田区一ツ橋 石田 東京都東久留米市神宝町 のような表(Sheet2!$A$1:$B$3)があるとして A2に苗字を入力で =VLOOKUP(A2,Sheet2!$A$1:$B$3,2,FALSE) ただ上記のままだとA2が未入力だったり、表に存在しない苗字は#N/A!というエラーになります。 =IF(COUNTIF(Sheet2!$A$1:$A$3,A2),VLOOKUP(A2,Sheet2!$A$1:$B$3,2,FALSE),"") のように存在する時のみ表示するようにした方がいいでしょう。

excell
質問者

お礼

返事ありがとうございます。 >コメントのような感じでリストから絞り込んで表示することはできるでしょうか。 青井 東京都千代田区皇居外苑 赤井 東京都千代田区一ツ橋 石田 東京都東久留米市神宝町 のような表(Sheet2!$A$1:$B$3)があるとして A2に苗字を入力で =VLOOKUP(A2,Sheet2!$A$1:$B$3,2,FALSE) ただ上記のままだとA2が未入力だったり、表に存在しない苗字は#N/A!というエラーになります。 =IF(COUNTIF(Sheet2!$A$1:$A$3,A2),VLOOKUP(A2,Sheet2!$A$1:$B$3,2,FALSE),"") のように存在する時のみ表示するようにした方がいいでしょう。 かなり参考になりました。 贅沢を言えば、もし、青井さんが2人いた場合、住所が2つ表示される仕組み難しいでしょうか。 また、井と入力することで青井さんと、赤井さんの、住所が、ピックアップできるような仕組みがあればなお、いいんですけど。 よろしくお願いします。

  • YNi2B2C
  • ベストアンサー率13% (21/156)
回答No.2

2.について 住所録ファイルを作成しておき、オートフィルタを掛けておきます。それで、別のファイルで名字を入力し、マクロを起動した時に 住所録ファイルを開く     ↓ オートフィルタで項目を絞り込んで表示する という仕組みを作ることは可能と思います。

excell
質問者

お礼

返事ありがとうございます。

  • toshi_ho
  • ベストアンサー率42% (71/168)
回答No.1

1.SEARCH関数を使用すれば、単語の有無(先頭からの位置も)を検索できます。文字列中の単語が選択される訳ではありません。 2.は分からないのでパスします。

excell
質問者

お礼

SEARCH関数ですか、、、なるほど。 できれば、単語が選択されればいいんですけど。 ありがとうございました。

関連するQ&A