いまさら聞けないExcelの使い方講座

【Excel】特定テキストを含む文章が入力されたデータを数える方法

「ログイン」という言葉を含むデータの数を数えるには?

フィルターでは対応できないケースもある

 特定の条件に一致するデータの数を数えたい場合、フィルター機能を使うことは多いですよね。条件を指定すれば、該当する行だけを表示できるため、そのままステータスバーでデータの件数を確認できます。

例えば、「未対応」のデータ数を数えたい場合、フィルターで絞り込んでステータスバーで件数を確認できます(結果は34件)

 また、「特定の言葉を含む」という条件も、フィルターの検索ボックスを利用すれば部分一致で絞り込めます。

 しかし、この方法では毎回数えるためにセル範囲を選択しなければならず、数えるたびにフィルターをかけたり、解除する必要があるため面倒です。そこで今回は「あいまいな言葉を含む」データの件数を数えるテクニックを紹介します。

COUNTIFS関数で特定のデータを数える

 まずは「未対応」のデータを数えながら、COUNTIFS関数の動作を確認しましょう。条件が1つの場合は、COUNTIF関数でも同様の結果となりますが、今回は複数の条件を指定することを見込んでいるので、COUNTIFS関数を利用します。

COUNTIFS関数の構文。引数[検索条件範囲]から[検索条件]に一致するデータを数えます

 「対応状況」列に入力された「未対応」を数えるなら、以下のような数式になります。

=COUNTIFS(D2:D101,"未対応")
セルF2に「=COUNTIFS(D2:D101,"未対応")」と入力すると、「34」と表示されました(①)

 では、さらに「問い合わせ内容」列に「ログイン」という言葉が含まれている場合を考えて、以下のような数式を考えましたが……

=COUNTIFS(C2:C101,"ログイン",D2:D101,"未対応")
セルF2の数式を「=COUNTIFS(C2:C101,"ログイン",D2:D101,"未対応")」と修正したところ(②)、結果は「0」となってしまいました(③)

 結果は「0」となってしまいました。セルC2~C101には「ログイン後すぐに~」や「ログインできない~」といった文章が入力されており、単に「ログイン」という言葉のみが入力されているセルは存在しないためです。

ワイルドカードで解決する

 この問題は「ワイルドカード」である「*」(アスタリスク)を組み合わせて条件を指定することで解決します。以下のような数式です。

=COUNTIFS(C2:C101,"*ログイン*",D2:D101,"未対応")

 「*」は「任意の文字列」を意味します。つまり、「ログイン」という言葉の前後にどんな文字があってもよいという条件になります。

「ログイン」の前後に「*」を入力して、セルF2の数式を「=COUNTIFS(C2:C101,"*ログイン*",D2:D101,"未対応")」と修正します(④)。結果は「9」となりました(⑤)

 フィルターを利用して、正しく数えられていることを確認してみましょう。

「問い合わせ内容」列のフィルターオプションに「*ログイン*」と入力して(⑥)、[OK](⑦)をクリックします
「対応状況」列の「未対応」のみにチェックを付けて(⑧)、[OK](⑨)をクリックします
該当するデータ数は「9」と確認できます(⑩)

 なお、「ログイン」という言葉が含まれている、または「未対応」といった「または」の条件で数える場合は、それぞれの件数を合計し、両方に該当するデータ(重複分)を差し引きます。

=COUNTIFS(C2:C101,"*ログイン*")+COUNTIFS(D2:D101,"未対応")-COUNTIFS(C2:C101,"*ログイン*",D2:D101,"未対応")

 「特定の言葉を含む」かつ「特定の状態である」という条件は、実務でもよく登場します。今回紹介したワイルドカードを利用した条件の指定は、SUMIF / SUMIFS関数などでも利用できます。フィルターでは面倒な条件を指定する場合で活用してみてください。