今回の記事では
文字列の中に探しているキーワードが含まれているかどうか調べる関数ってある?
キーワードが含まれている場合と含まれない場合の結果を表示したい
検索範囲にキーワードが含まれていればその結果を表示したい
でもそんなことって関数で出来たりするの?
こういった疑問に答えます
✔関数を使ったキーワード検索をする方法のテーマ
①IF関数とCOUNTIF関数をネストすればキーワード検索することが出来ます
②VLOOKUP関数とワイルドカードを組み合わせればキーワード検索出来ます
この記事を書いているのはOffice歴約20年
現在、エステサロン経営をしながらITを使った現場のマネジメントをしています
「関数を使ったキーワード検索をする方法」に関して実体験に基づいて解説しています
今回の内容を一緒にやりたい場合は▼のファイルをダウンロードして下さい
目次を使って読みたい項目へ
IF関数とCOUNTIF関数をネストすればキーワード検索することが出来ます
指定のキーワードを含む文字を見つけるにはIF関数とCOUNTIF関数をネストする必要があります
なぜなら、IF関数だけでは「〇〇を含むという条件」を指定することが出来ないからです
今回は言葉だけでは分かりにくいので実際に「魚の名前をキーワード」に何の魚の種類なのか?
という振り分けを関数を使って自動化する方法について実際に見ていきましょう
まずはこんな表を用意しました
こんな風にタイの仲間の一覧表があります
目的は魚の名前に「ダイ」という文字が含まれていれば「タイの仲間」と表示することです
まずは、IF関数だけでキーワードが含まれていた場合と含まれない場合で上手くいくか確かめてみましょう
結論から言うと失敗です
今回の式は「=IF(B5=”*ダイ*”,A5,“何の仲間?”)」なのでコレを日本語にしてみましょう
「=IF(B5のセルが「ダイ」という文字を含んでいれば,A5のセルを表示してね,そうじゃなかったら「何の仲間?」って表示してね)」という意味です
一見何も問題ないように思えますが、実はIF関数の条件式にワイルドカードを使っても上手く反映してくれないんです
ワイルドカードというのは「*」や「?」を使う、いわゆる「あいまい検索」をするための記号のことを言います
ワイルドカードの使い方に関しては、「IF関数+COUNTIF関数で特定の文字をピックアップ」という記事でも紹介しているので参考にしてみて下さい
「あいまい検索」とは今回のように「〇〇を含んでいる」などのキーワードを検索したい時に使う検索方法だと思って下さい
今回の場合は「“*ダイ*”」がポイントで「マダイ」など文字列の一部にキーワードである「ダイ」を含んでいる場合という意味で使えます
本来の目的は「ダイ」というキーワードを見つけたら「B5のセル」の内容である「タイの仲間」という結果にしたいのですが上手くいきません
では、どうしたら良いのでしょうか?
そこで登場するのが「COUNTIF関数」です
COUNTIF関数について詳しい使い方は、さっき紹介した記事でも解説してるので参考にして下さい
まず、COUNTIF関数を使う意味は「ワイルドカードを使うことが出来る」からです
つまり、「ダイ」が対象の文字列に含まれている場合はいくつ含まれているのか数字で教えてくれます
コレを応用できれば上手くいく気がしませんか?
まずは、COUNTIF関数を使って「ダイ」が含まれているかどうか判断する方法を見ていきましょう
COUNTIFを使った場合は、こんな風にワイルドカードがちゃんと生きてきます
数式は「=COUNTIF(B6,“*ダイ*”)」なのでこれも日本語にしてみましょう
「=COUNTIF(B6のセルに,「ダイ」を含む個数を表示してね)」こんな感じです
すごくシンプルですがちゃんと「1」と表示してくれています
B6セルの内容は「キダイ」なので1つ含まれていますよね
さてココまで来れば答えまでもう少しです
ではココまでのIF関数とCOUNTIF関数を組合せて「ダイという文字が1つでも含まれていればタイの仲間と表示」出来るように2つの関数をネストさせてみましょう
それがこれです
この組合せであれば「ダイ」を含む文字列を探し出して、その結果で表示する内容を自由に変えてくれます
式はこんな感じで「=IF(COUNTIF(B7,”*ダイ*”)>=1,A7,“何の仲間?”)」という内容ですね
IF関数の条件式にCOUNTIF関数を入れ、カウントした結果の数字が1以上だったら種類列の内容を表示させています
日本語にするとこんな感じです
「=IF(COUNTIF関数の結果が1以上だったら,A7のセルを表示してね,そうじゃなかったら「何の仲間?」と表示してね)」
これで、対象の文字列の中に探しているキーワードが含まれているかどうか?
を知ることが出来ます
今回のようにIF関数では出来ることが限られている場合は、その他の関数を使って答えを出せないか? 考えてみることがポイントです
但し、関数を使い慣れていないと他の関数を使ってみるという方法も思い浮かばないのでまずは関数になれることが重要です
繰り返しになりますが、指定のキーワードを含む文字を見つけるにはIF関数とCOUNTIF関数をネストする必要があります
VLOOKUP関数とワイルドカードを組み合わせればキーワード検索出来ます
VLOOKUP関数とワイルドカードの組合せであれば、キーワードを含んだ値で目的の値を検索できます
なぜなら、VLOOKUP関数は単独でワイルドカードを使うことが出来るからです
具体的な使い方を見た方が早いのですがその前にまずは、VLOOKUP関数だけで検索出来ないか試してみましょう
というのも「ワイルドカードを使う=あいまい検索」だと解説しましたが「あいまい検索」であればVLOOKUP関数でも引数に「1またはTRUE」と設定すれば検索出来そうですよね
結論から言うと、それでは答えは出ません
なぜならVLOOKUP関数のあいまいとは「近似値(きんじち)」という答えに近い値を取得する方法でキーワードで検索する訳では無いからです
VLOOKUP関数のあいまい検索というのは、「条件を満たした答えに近い値」を表示するものだと思って下さい
ワイルドカードを使ったあいまい検索は「〇〇を含む」という意味なので紛らわしいですが一緒にしないように注意して下さい
今回は種類に「タイ」が含まれている場合、タイの名前を表示する方法です
こんな風に一見検索できそうですが答えはエラーになります
普通の方法ではVLOOKUP関数でキーワードが含まれているか判断出来ないということです
では、VLOOKUP関数の条件をワイルドカードにしてみるとどうでしょうか?
これも実際に見てみましょう
これだと上手くいきました
数式を見てみましょう「=VLOOKUP(“*タイ*”,A9:B9,2,0)」更に日本語にしてみます
「=VLOOKUP(「タイ」という文字を含んでいる場合は,A9~B9セルの範囲で,2列目を表示してね,完全一致していれば)」といった感じです
この方法なら簡単にキーワードを含む文言があるかどうかすぐに判断出来ます
この方法をもう少し応用してみましょう
例えば、住所に含まれるキーワードを基にする場合を考えてみましょう
こんな風に工夫すると、キーワードを別のセルにすることが出来るので活用範囲が広がります
式は「=VLOOKUP(“*”&D2&”*”,$A$2:$B$11,2,0)」です
ポイントは「“*”&D2&”*”」ですね
検索するには「文字+*」という組合せが必要なので「*」を「””」で囲って「&」でセルの内容と「*」をくっつけて文字として扱えるようにしています
この方法なら、好きなキーワードで自由に検索しやすくなります
もう少し詳しく見てみると栃木県の温泉が3箇所ありますよね
そんな時はキーワードを工夫します
こんな風にキーワードで絞り込みが出来るので結構面白いものが作れちゃいますよ
繰り返しになりますが、VLOOKUP関数とワイルドカードの組合せであれば、キーワードを含んだ値で目的の値を検索できます
オススメのExcel関数の解説書 5選
関数を本で学ぶ時は次に上げるものがオススメです
本を購入をオススメしている理由と各本の紹介に関して、下記の記事で詳しく解説しているので合わせて読んでみてください
コメントを残す