Excelで、ワイルドカードが使える関数、使えない関数の解説とIF関数を使ったあいまい検索の解説。
もくじ
Excel関連記事
Excel・Wordで値の貼り付けができるショートカットキー
ExcelのTEXT関数で今日の日付から何日後の年月日・曜日を取得する
phpで文字列が数字かどうかを判別するctype_digit
【Excel】重複がある一覧の中から対象のセルを探す方法
【Excel】重複のない一覧の中から、複数の対象のセルを探す方法
【Excel】手入力や関数での、セル内の文章を改行する方法
【Excel】MATCH関数とINDEX関数で、指定範囲内から自由にデータを取り出す
【Excel】SUMIF関数の文字列版を作る方法
【Excel】VLOOKUP関数で、重複する一覧から正しく該当行を検索する
ワイルドカードとは
ワイルドカードとは検索などで指定する文字列の指定方法で、あいまい検索にはかかせないものです。
ワイルドカードを使える関数は、決まっています。
下のような文字列をワイルドカードであいまい検索してみます。
- excel
- E-girls
MATCH関数で、ワイルドカードのあいまい検索する
上のように、A1に「excel」、A3に「E-girls」の文字列が入力されているセルに、*(アスタリスク)で検索してみます。
*(アスタリスク)の使い方については、あとで説明します。
MATCH(“e*l”,A3,0) → #N/A
合致する場合は、番号が返ってきます。
合致するものがない場合は、該当なしのエラーになります。
合致しない場合は#N/Aエラーなので、条件式に値が#N/Aだった場合にTRUEを返す「ISNA関数」を利用し、条件分岐しています。
VLOOKUP関数で、ワイルドカードのあいまい検索する
VLOOKUP関数のあいまい検索でも、上のMATCH関数と同じ文字列を利用していきます。
VLOOKUP(“e*l”,A3,1,0) → #N/A
合致する場合は、指定した列番号の値が返ってきます。
合致するものがない場合は、該当なしのエラーになります。
MATCH関数同様、合致しない場合は#N/Aエラーなので、条件式に値が#N/Aだった場合にTRUEを返す「ISNA関数」を利用し、条件分岐しています。
SEARCH関数で、ワイルドカードのあいまい検索する
SEARCH関数のあいまい検索でも、上のVLOOKUP関数と同じ文字列を利用していきます。
SEARCH(“e*l”,A3) → 1
SEARCH(“e*l”,”E-gir”) → #VALUE
合致する場合は、検索文字の出現位置が返ってきます。
合致するものがない場合は、#VALUEエラーになります。
これは、SEARCH関数の特性で文字列全体から検索してしまうため、「l」で終わっていなくてもTRUEになります。
合致しない場合は#VALUEエラーなので、条件式に値が#VALUEだった場合にTRUEを返す「ISERROR関数」を利用し、条件分岐しています。
FIND関数では、ワイルドカードは使えない
FIND関数は、文字の大文字・小文字の区別して扱い、ワイルドカードに使用する記号も文字として扱ってしまうため、FIND関数では、ワイルドカードを使えません。
上記の3つの中から選びましょう。
COUNTIF関数で、ワイルドカードのあいまい検索する
COUNTIF関数のあいまい検索でも、上のMATCH関数と同じ文字列を利用していきます。
COUNTIF(A3,”e*l”) → 0
合致する場合は、該当するセルの合計が返ってきます。
合致するものがない場合は、0が返ってきます。
合致しない場合は0なので、そのままIF関数で活かすことができます。
条件分岐する値が、0の場合はFALSEとして、
1以上の場合は、TRUEとして扱われます。
ワイルドカード「*(アスタリスク)」を使う
ようやくワイルドカードの使い方に入ります。
*(アスタリスク)は全ての文字として扱え、何ケタの文字数にも扱ってくれます。
下のリストがあったとして、
- excel
- E-girls
検索文字をe*lとした場合、
これは「e」から始まって、「l」で終わるものを検索するので、1と2が該当します。
例えば検索文字を*el*とした場合、
文字列のどこかに、「el」が含まれるものを検索するので1が該当します。
ワイルドカード「?(半角疑問符)」を使う
?(半角疑問符)は全ての文字として扱ってくれますが、「?」の1つで1文字分としか扱えません。
さっきのリストで、追加して
- excel
- E-girls
- CCgirls
検索文字を“??girls”とした場合、
始めから2文字は何でもよくて、残りが「girls」のものを検索するので3と4が該当します。
ワイルドカード「~(半角チルダ)」を使う
~(半角チルダ)は文字列の中に含まれる「*」と「?」を検索するときに使います。
下のリストだと
- excel?
- E-mail?
- E-girls*
検索文字を“*~?*”とした場合、
どこかに「?」を含むものを検索するので1と2が該当します。
このようにワイルドカードを使って絞込すると適切な検索ができますね!
ちなみにワイルドカード動作確認は=COUNTIF(範囲,”検索条件”)とすることで範囲内で検索条件に当てはまるものの数を表示してくれます。
コメント