Excelでは「部分一致」や「データ数のカウント」などの条件判定に、よくワイルドカードという記号を使用します。
例えば、=COUNTIF(A2:A6,”りんご*”)の数式では“りんご*”に付いている「*」がワイルドカードの一例です。
一例と言ってもワイルドカードとして使用される記号は「*」と「?」のたった2つだけです。
どちらも特定の条件下での文字列の有無の判別に使用することを目的としています。
これらのワイルドカードについて、まずは簡単に解説しますが、たぶん実用的な話については文面での説明はあまり意味がないように思います。
実際に使うとき、迷うポイントとしては主に「指定方法」くらいですから。
なので、今回は解説というより、使用例をできるだけ多く示す形で紹介させていただきます。
ワイルドカードが使用できる関数
ワイルドカードが使用できるのは特定の関数の条件引数の部分です。
具体的には主に次の関数です。(データベース関数を除く。)
- COUNTIF/COUNTIFS
- SUMIF/SUMIFS
- AVERAGEIF/AVERAGEIFS
- SEARCH
- MATCH/XMATCH
- VLOOKUP/HLOOKUP/XLOOKUP
2種類のワイルドカードについて
主な違い
ワイルドカード | 意味 |
---|---|
* | 1文字以上の文字列 |
? | 1文字の文字列 |
「*」は基本的に単独で使用します。正確には、前方一致、前後一致、後方一致など、1つの条件引数に最大3個まで使用する可能性はありますが、「**」のように並べて使用することはないです。
一方、「?」は文字列の数を「?」の数(いくつ並べるか)で条件化するため、単独で使用することもあれば、「???」などのように並べて使用することも普通にあります。
「”ふじりんご”」と「ひめりんご」を両方対象としたい場合、「?」で指定するなら「”??りんご”」、「*」で指定するなら「”*りんご”」となるわけです。
共通する特徴
- スペースなど目に見えない入力も対象
- 数値のみのセルは無視
- 数式の空欄(“”)は無視
スペースなど目で見えない入力も立派な文字列扱いとなるので注意する必要があります。
具体的には=COUNTIF(A1:Z100,”*”)のような数式で、スペースもカウントされてしまうので、意図しない結果を招かないよう気をつけてください。
また、重要なポイントとして、数値のみのセル(セルの書式設定が文字列の場合を除く)は無視されます。
最後に、数式の空欄について補足しておくと、「””」は無視されますが、「” ”」はカウントされます。
後者「” ”」はスペースの入力と同じだからです。(半角スペースでも同じ)
使用例
では「*」の指定例として参考数式を列挙していきます。
次のサンプル表に基づいて数式とその結果を記載していきます。
「*」の使用例
数式 | 結果 |
---|---|
=COUNTIF($A$2:$A$17,”*”) A2:A17で文字列入力のあるセル数 | 16 |
=COUNTIF($A$2:$A$17,”り*ご”) A2:A17で”り”で始まり”ご”で終わるセル数 | 5 |
=COUNTIF($C$2:$C$17,”*”) C2:C17で文字列入力のあるセル数(数値は文字列として認識されない) | 0 |
=COUNTIF($B$2:$B$17,”*りんご”) B2:B17で”りんご”で終わるセル数 | 2 |
=COUNTIF($B$2:$B$17,”*(袋)”) B2:B17で”(袋)”で終わるセル数 | 7 |
=COUNTIF($B$2:$B$17,”*袋*”) B2:B17で”袋”を含むセル数 | 7 |
(E1セルに「りんご」と入力がある場合) =COUNTIF($B$2:$B$17,”*”&$E$1&”*”) B2:B17で”りんご”を含むセル数 | 3 |
=SUMIF($B$2:$B$17,”*袋*”,$C$2:$C$17) B2:B17で”袋”を含む行の金額合計 | 2310 |
=SUMIF($B$2:$B$17,”*(袋)”,$C$2:$C$17) B2:B17で”(袋)”で終わる行の金額合計 | 2310 |
=SUMIF($B$2:$B$17,”*柿*”,$C$2:$C$17) B2:B17で”柿”を含む行の金額合計 | 1560 |
=SUMIF($B$2:$B$17,”*柿”,$C$2:$C$17) B2:B17で”柿”で終わる行の金額合計 | 250 |
=SUMIF($B$2:$B$17,”*りんご*”,$C$2:$C$17) B2:B17で”りんご”を含む行の金額合計 | 400 |
(E1セルに「りんご」と入力がある場合) =SUMIF($B$2:$B$17,”*”&$E$1,$C$2:$C$17) B2:B17で”りんご”で終わる行の金額合計 | 220 |
「?」の使用例
数式 | 結果 |
---|---|
=COUNTIF($A$2:$A$17,”?”) A2:A17で1文字だけのセル数 | 0 |
=COUNTIF($A$2:$A$17,”??”) A2:A17で2文字だけのセル数 | 11 |
=COUNTIF($A$2:$A$17,”り?ご”) A2:A17で”り”と”ご”の間に1文字入った3文字のセル数 | 5 |
=COUNTIF($A$2:$A$17,”??ご”) A2:A17で”ご”で終わる3文字のセル数 | 5 |
=COUNTIF($C$2:$C$17,”?”) C2:C17で1文字だけのセル数 | 0 |
=COUNTIF($B$2:$B$17,”??りんご”) B2:B17で”りんご”で終わる5文字のセル数 | 1 |
=COUNTIF($B$2:$B$17,”*(袋?”) B2:B17で”(袋”+1文字で終わるセル数 | 7 |
=COUNTIF($B$2:$B$17,”*袋?”) B2:B17で”袋”+1文字で終わるセル数 | 7 |
(E1セルに「柿」と入力がある場合) =COUNTIF($B$2:$B$17,”*”&$E$1&”???”) B2:B17で”柿”+3文字で終わるセル数 | 3 |
=SUMIF($B$2:$B$17,”???”,$C$2:$C$17) B2:B17で3文字の行の金額合計 | 350 |
=SUMIF($B$2:$B$17,”???(袋)”,$C$2:$C$17) B2:B17で”(袋)”までが3文字の行の金額合計 | 1310 |
=SUMIF($B$2:$B$17,”*みかん???”,$C$2:$C$17) B2:B17で”みかん”の後が3文字の行の金額合計 | 380 |
=SUMIF($B$2:$B$17,”??みかん*”,$C$2:$C$17) B2:B17で”みかん”の前が2文字の行の金額合計 | 490 |
=SUMIF($B$2:$B$17,”*????*”,$C$2:$C$17) B2:B17で4文字以上の行の金額合計 | 3080 |
(E1セルに「柿」と入力がある場合) =SUMIF($B$2:$B$17,”??”&$E$1&”*”,$C$2:$C$17) B2:B17で”柿”の前に2文字ある行の金額合計 | 1560 |
まとめ
COUNTIFとSUMIFを使って、ワイルドカードの指定方法をいくつか紹介させていただきました。
ただ、理解を深めるにはページを眺めるより実際に使ってみるのが一番です。
なお、ワイルドカードの使用方法で少し勘違いしやすい点としては、IF関数などの条件にはワイルドカードを直接的に使用することができないということです。
直接的に、というのは、例えばA1セルに「ふじりんご(袋)」が入力されていたとして、
=IF(A1=”りんご”,TRUE,FALSE)
のようにIFの条件に直接的にワイルドカードを指定しても、この場合の「*」はワイルドカードではなく「文字列」と認識するため、「*りんご*」という文字列がA1に入力されているかが判断されます。
A1セルに入力されているのは「ふじりんご(袋)」という前提ですから、「*りんご*」とは一致しません。
当然ながらこの場合の返り値は「FALSE」です。
この場合、正しい数式は、=IF(COUNTIF(A1,”りんご“),TRUE,FALSE)です。
これなら「TRUE」が返ります。
今回は関数について紹介しましたが、ワイルドカードはExcelの検索窓での使用もできます。
検索窓での指定方法も指定方法は基本的に同じですので、もしご存知ない方がいましたらぜひ活用してみてください。
コメント
コメント一覧 (2件)
mx461e
qybbip