今回の記事では
対象の文字列に調べたい文字が含まれているか関数で調べる方法は無いの?
手作業や目で見て調べると大変だから何とか簡単にしたい
調べたい文字列の中に調べたい文字が含まれているか調べるにはどうしたら良いの?
関数を使って調べる方法があるなら便利なんだけどどうにかなる?
こういった疑問に答えます
✔文字列に調べたい文字が含まれるか知る方法のテーマ
①FIND関数を使えば知りたい文字が含まれているかすぐ分かります
②SEARCH関数を使えばワイルドカードであいまい検索が出来ます
この記事を書いているのはOfficeを約20年間活用しながら
ITを活用したエステの経営マネジメントしている私の経験を基に
「文字列に調べたい文字が含まれるか知る方法」に関して実体験に基づいて解説しています
今回の内容を一緒にやりたい場合は▼のファイルをダウンロードして下さい
目次を使って読みたい項目へ
FIND関数を使えば知りたい文字が含まれているかすぐ分かります
ある文字列の中に「調べたいキーワードが含まれているか調べる」にはFIND(ファインド)関数を使うのがベストです
なぜなら、FIND関数一つで知りたい文字の検索をすることが可能だからです
では、具体的な使い方について見ていきましょう
今回は「アウトドアメーカーの一覧表」と「回文の一覧表」を例題にしています
ちなみに「回文(かいぶん)」とは前から読んでも後ろから読んでも同じ読み方になる文章のことです
「縄の罠」のように「よみがな」にすると前後で同じ読み方になる面白い文章です
こんな風にメーカー名(色々な書き方)から「調べたい文字の最初の文字位置」を表示してくれます
では実際の設定方法や関数の動きについて見ていきましょう
この場合は、「Coleman/コールマン」という文字列の中に「コールマン」という言葉が含まれているか調べて、見つかった場合は見つけた最初の位置を表示してくれています
FIND関数の式は、「=FIND(B5,A5)」で基本的な使い方は
「=FIND(検索文字列,対象,開始位置)」という使い方をします
この式を日本語にすると「=FIND(B5のセルの文字列が,A5のセルに含まれていたら最初の文字の位置を表示してね)」となります
使い方はこれだけです
言葉だけだとちょっと分かりづらいので、FIND関数の動きを図解にして見てみましょう
これだけなので特に難しいことは無いですね
次はエラーになっている部分を見てみましょう
エラーの原因はFIND関数が「完全一致する文字列」しか検索出来ないからです
ココで改めてFIND関数の特徴についてまとめてみます
- 大文字と小文字を区別する
- カタカナとひらがなを区別する
- 「*」や「?」などのワイルドカードを使うことが出来ない
といった特徴があります
つまり、大文字小文字の組合せによるスペルの間違いや、ひらがな・カタカナのちょっとした違いの場合はエラーを表示してしまいます
これらの特徴をうまく使うことで「完全一致した文字列を検索する場合」はFIND関数を使って調べるのがベストだということです
次にFIND関数の第2引数を使った検索方法を「回文」を例に解説していきます
こんな風に回文の中から検索したい文字の位置を表示してくれますが、一部エラーが表示されています
また、「1文字だけ指定」しているのに「7文字目」が答えになっている部分もあります
ではどうしてこうなるのか見てみましょう
こんな風に「足しました」の「た」ではなく「たしました」の「た」の位置を表示している原因は関数の設定内容にあります
今回の設定内容は「=FIND(B18,A18,6)」ですね
この第2引数(2番目の設定)がポイントです
最後の数字は、検索を開始する位置を指定する数字なので「6文字目以降」を検索する設定になっています
この式を日本語にすると
「=FIND(B18セルの内容を,A18セルの中から見つけて最初の位置を表示してね,ただし調べる位置は6文字目以降で)」となります
ちょっと分かりづらいので動きを図解にしてみましょう
こんな風に指定した文字以降の検索をする方法があります
エラーになっている理由も指定した文字以降に一致する文字列が無かったのでエラーが表示されています
こんな風にFIND関数は2通りの使い方が出来ますが、使い方次第なので目的に合った使い方をしてみましょう
FIND関数の活用方法は「文字分割をするならLEFT・MID・FIND関数」などの記事でも解説しているので参考にしてみて下さい
繰り返しになりますが、ある文字列の中に調べたいキーワードが含まれているか調べるにはFIND(ファインド)関数を使うのがベストです
SEARCH関数を使えばワイルドカードであいまい検索が出来ます
あいまい検索をしたいならSEARCH関数を使うのが最適解です
なぜなら、ワイルドカードを使った検索はSEARCH関数にしか出来ないからです
では、SEARCH関数の使い方について詳しく見ていきましょう
使い方は、こんな感じですが実はFIND関数もSEARCH関数も使い方はほぼ一緒です
先にSEARCH関数の特徴を押さえておきましょう
- 大文字と小文字を区別しない
- カタカナとひらがなを区別する
- 「*」や「?」などのワイルドカードを使うことが出来る
つまり、FIND関数でできない「あいまい検索」ができるのがSEARCH関数という訳です
一番分かりやすいのがメーカー名「LOGOS/ロゴス」で検索文字列「Logos」というパターンの場合FIND関数ではエラーでしたが、大文字と小文字の区別をしないSEARCH関数なら「1文字目」と表示してくれます
使い方や意味はFIND関数と一緒なので詳しい説明は省略しますね
回文の場合はFIND関数もSEARCH関数も結果は一緒です
では、一番の違いでもあるワイルドカードを使った方法はどうでしょうか?
結果はワイルドカードの有無は関係なく一緒ですが「*(アスタリスク)」を使った方法でもちゃんと検索出来ていますね
ワイルドカードを使った方法については「自由度な検索ならCOUNTIF関数+ワイルドカード」などの記事でも解説しているので参考にしてみて下さい
こんな風にFIND関数の使い方を覚えてしまえば、SEARCH関数を改めて覚え直す必要も無いくらい両関数の使い方は一緒なので「ワイルド・カードなどを使ったあいまい検索」をしたい場合は、SEARCH関数を使うと覚えておきましょう
繰り返しになりますが、あいまい検索をしたいならSEARCH関数を使うのが最適解です
オススメのExcel関数の解説書 5選
関数を本で学ぶ時は次に上げるものがオススメです
本を購入をオススメしている理由と各本の紹介に関して、下記の記事で詳しく解説しているので合わせて読んでみてください
コメントを残す