Excel COUNTIFS関数でワイルドカード(*?)を文字列として扱う方法

2020年8月4日

IF付(条件判定付き)の集計関数で一部の文字列はワイルドカードという

特殊な文字として扱われて意図通りに集計できません。

COUNTIFSで*と?が正常にカウントできない例

これが問題になるのは文字列を検索するCOUNTIF関数COUNTIFS関数です。

この記事はそれらの文字を通常の文字としてカウントする方法を紹介します。

手順

下記のような動作となるため文字列としては扱われません。

  • *…任意の数の文字列
  • ?…任意の1文字

全角に置換する

単純ですが*を*に置換、?を?に置換してよければ有効です。

~(チルダ)でエスケープする(SUBSTITUTE関数)

~(チルダ)を*と?の前に置くとワイルドカードではなく通常の文字として扱われます。

よってSUBSTITUTE関数で置換します。

=COUNTIFS(検索条件範囲,SUBSTITUTE(SUBSTITUTE(検索条件,"*","~*"),"?","~?"))
SUBSTITUTE関数でエスケープするキャプチャ

これにより*が1件、?が2件と意図通りの結果が表示されます。

関連記事

COUNTIFS関数で特定の文字列を含む件数を取得する方法

COUNTIFS関数で不等号を文字列として扱う方法

マクロ・VBA 重複する値をピックアップする方法(ワイルドカードと不等号対応版)

IF系関数の使い方・活用方法の記事一覧