COUNTIFS関数の使い方:複数の条件と一致するデータを数える:Excel関数

COUNTIFS関数の使い方:複数の条件と一致するデータを数える:Excel関数

COUNTIFS関数は、指定した複数の条件のすべてと一致(全一致)するデータを数える関数です。

指定する条件には、比較演算子やワイルドカードも使用できます。

なお、ワイルドカードを条件式で使用する場合は注意点もありますので、ここで詳しく解説していきます。

COUNTIFS関数の使い方

対応バージョン:Excel365 2019 2016 2013 2010

COUNTIFS関数の書式です。

=COUNTIFS(範囲1,検索条件1,…,範囲127,検索条件127)
※カッコ内の「範囲1,検索条件1,…,範囲127,検索条件127」を引数といいます。
※引数〔範囲〕と〔検索条件〕の組み合わせは127個まで指定できる。

注意点

COUNTIFS関数は、複数の〔範囲〕〔条件〕を指定できますが、条件で検索する範囲は全てで同じ行数・列数である必要があります。ある〔範囲〕は10行1列で、ある〔範囲〕は8行2列というような使い方はできませんので注意しましょう。

引数の説明

  • 〔範囲〕:検索条件で検索する範囲を指定
  • 〔検索条件〕:〔範囲〕の中から個数を数える条件を指定

COUNTIFS関数の基本的な使い方

それでは、実際のサンプルでCOUNTIFS関数の使い方をイメージしましょう。

以下のサンプルは、ポイントカード利用者の管理表で、そこから男女別・職業別に会員の人数を調べています(画像の右下赤枠の部分を求める)。

なお、職業は数値で表していますが、意味は以下のように決めています。

  • 1:会社員
  • 2:パート
  • 3:アルバイト
  • 4:学生
  • 5:無職

また、男女別は、1が男性で2が女性としています。

COUNTIFS関数の使用例

まず、COUNTISF関数でJ12セルに「男性で会社員」の人数を求めます。

関数式は以下の通り。

=COUNTIFS($B$3:$B$16,1,$D$3:$D$16,1)

関数式の説明

男性会員(1)で職業が会社員(1)の人数をカウントします。

1番目の引数「$B$3:$B$16,1」は、男女列(B3:B16)から男性「1」と一致するデータを検索します。

2番目の引数「$D$3:$D$16,1」は、職業列(D3:D16)から会社員「1」と一致するデータを検索します。

この両者の条件をすべて満たしたデータがカウントされ結果が返されます。

女性の会社員の人数を求めるのは、1番目の引数の〔検索条件〕に「2」を指定すれば求められます。

残りの「男性でパート」「女性でパート」などの人数は、上記の関数式をコピーし、それぞれの検索条件を変更するだけで求められます。

なお、セル参照の前に「$」マーク(絶対参照)が付いていますが、これは関数式を他のセルにコピーした場合にセル参照が変更されるのを防ぐためです。

COUNTIFS関数は、いずれかの条件が満たされたデータをカウントするのではなく、どちらの条件も成立したデータをカウントしますので注意しましょう。

どちらかの条件を満たしたデータをカウントする場合は、「DCOUNT関数」を使います。

COUNTIFS関数は比較演算子も使える

COUNTIFS関数の〔検索条件〕に比較演算子を使った例です。

比較演算子も使える

J8セルに「男性会員で30歳以上」の人数を求めています。

1番目の引数「$B$3:$B$16,1」は、男女列(B3:B16)から男性「1」と一致するデータを抽出し、かつ、2番目の引数「$C$3:$C$16,”>=30″」で、年齢列(C3:C16)から年齢が30歳以上の人数を数えています。

引数〔条件〕に比較演算子を使う場合は、ダブルクォーテーション(”)を前後に付けて「”>=30″」や「”<=30″」のように指定します。

COUNTIFS関数で使える比較演算子の種類

比較演算子 意味
= 等しい
> より大きい
< より小さい
>= より大きい、もしくは等しい
<= より小さい、もしくは等しい
<> 等しくない

COUNTIFS関数はワイルドカードも使える

ワイルドカードは「あいまい検索」と言われ、検索する条件の一部が分かっている場合などで使えます。例えば、「北」で始まる一連の文字列の数を数えたいというような場合です。

下記が、COUNTIFS関数の〔条件〕にワイルドカードを使った例です。

ワイルドカードも使える

ここでは、「住所」列(E列)からワイルドカードを使って、「北で始まる文字列」を数えています。

特定の文字が含まれるデータを数える場合は、ワイルドカードの「*」を使います。上記の例では、「北」よりも後ろの文字が何であっても数えることができます。

また、「*川」と指定すれば、「川」で終わるデータを検索できます。さらに、「神*川」と指定すれば「神」で始まり「川」で終わるデータを数えることができます。

このように、文字列の一部が分かっていれば、ワイルドカードを使って数を数えることが可能なのです。

注意点として、ワイルドカードは、検索範囲のデータが数値の場合は上手く機能しません。結果が「0」で返されてしまいます。したがって、特定範囲のデータが数値の場合は、他の方法を使って数を数えるしかありません。

COUNTIFS関数で使えるワイルドカードの種類

ワイルドカード 意味 使い方
* 1文字以上の文字列 “A*” Aで始まる文字列
“*A” Aで終わる文字列
“*A*” Aを含む文字列
? 1文字の文字列 “A?” Aで始まる2文字
“?A” Aで終わる2文字
“?A?” Aを含む3文字

COUNTIFS関数と同じ分類の関数

COUNTIFS関数と同じ「カウント」系の関数は以下のページで探せます。

Scroll Up