COUNTIFS関数-複数の条件に合ったセルを数える-

エクセル関数
この記事は約6分で読めます。
[AD]

スグにためセル! – ここを読めばすぐ使える

COUNTIFS関数は、指定された範囲に含まれるセルのうち、複数の検索条件にすべて一致するセルの個数を数える関数です。

関数の構成:

=COUNTIFS(条件範囲1,検索条件1,[条件範囲2],[検索条件2],・・・)

各要素(引数)の説明
条件範囲1 必須検索条件1を満たすかどうか確認するセルの範囲を指定します。
検索条件1 必須条件範囲1の各セルが、数える対象となる条件を数値、式、文字列で入力します。
条件範囲2,検索条件2,・・・省略可2つ目以降の数える対象とするかどうかを判定する範囲とその条件を入力します。
※最大127組の範囲・条件を指定できます。

対応バージョン:365 2019

※ より詳しい解説はここから下に続きます。

[AD]
[AD]

COUNTIFS関数とは

COUNTIFS関数とは、指定された範囲に含まれるセルのうち、複数の検索条件にすべて一致するセルの個数を数える関数です。

関数の構成としては、次のとおりです。

=COUNTIFS(条件範囲1,検索条件1,[条件範囲2],[検索条件2],・・・)

第1引数:条件範囲1

1つ目の引数には1つ目の条件範囲として条件範囲1を入力します。この引数は必須です。

ここには、第2引数に入力する検索条件1を満たすかどうかを確認するセルの範囲を指定します。

第2引数:検索条件1

2つ目の引数には1つ目の検索条件として検索条件1を入力します。この引数も必須です。

ここには、第1引数に入力した条件範囲1の中で、数える対象にしたいセルの条件を文字列や数値、式で入力します。

文字列を指定する場合はダブルクオーテーション(”)で囲みます。

また、検索条件として使用できる条件式は次のとおりです。条件式を入力する場合もダブルクオーテーション(”)で囲みます。

条件式条件使用例
=等しい“=1”
<>等しくない“<>りんご”
>より大きい“>3”
<より小さい“<10”
>=以上“>=0”
<=以下“<=-10”

「あ」を含む文字を数えたいというように、部分一致する文字列を数えたい場合は、次のワイルドカードを使用することもできます。

ワイルドカード意味使用例結果
*任意の文字列“あ*”あめ、あか、あずき
?任意の1文字“あ?”あめ、あか、あお

ときには、アスタリスク(*)やクエスチョン(?)を数えたいときがあるかもしれません。その場合は、チルダ(~)をつけて、「~*」や「~?」と入力します。

[AD]
[AD]

第3引数以降:条件範囲と検索条件をペアで入力

第3引数以降は設定したい条件に数に応じて条件範囲検索条件をペアにして入力します。第3引数以降は任意で入力できる引数となります。

このペアは、最大127組まで入力することができます。つまり、127個まで条件を指定することができるということです。

ちなみに、第3引数以降は任意なので、入力しなければペアが1組だけとなるので、結果的にCOUNTIF関数と同じとなります。

このようにして入力した複数の条件をすべて満たしたセルが数える対象となります。つまり、COUNTIFS関数はANDの条件でセルを数えるのです。

COUNTIFS関数の入力方法

それでは、COUNTIFS関数の使い方を見ていきましょう。

縦方向に数えてみる

下の図のような名簿があったとします。この中から「2歳の女の子」の人数を数えてみましょう。

条件を整理してみると、年齢が「2」で、性別が「女の子」であればいいので、計算式は次のようになります。

=COUNTIFS(B3:B10,2,C3:C10,”女の子”)

条件範囲1には、年齢が入力されたセル範囲を指定します。

そして、検索条件1には、数字の2が入力されたセルを対象とするので、直接「2」と入力します。

次に、条件範囲2には、性別が入力されたセル範囲を指定し、検索条件2には「女の子」という文字が入力されたセルを対象とするので、ダブルクオーテーション(”)で囲んで「”女の子”」と入力します。

この結果、2歳の女の子の人数は3名だということがわかりました。

[AD]
[AD]

横方向に数えてみる

それでは、次に横方向に並んだ次のような表で、すべての教科が80点以上の人数を数えてみましょう。

この場合、条件を整理して見ると、国語が80点以上、算数が80点以上、理科が80点以上ということになりますので、計算式は次のようになります。

=COUNTIFS(B4:I4,”>=80″,B5:I5,”>=80″,B6:I6,”>=80″)

条件範囲1~3はそれぞれ教科の点数が入力されたセルを横方向に選択しています。

そして、検索条件1~3は、すべて80以上のセルを対象とするので「”>=80″」と入力しています。

この結果、すべての教科が80点以上の人数は1人ということがわかりました。

このように、COUNTIFS関数では、縦方向にも横方向にも数えることができます。

縦方向に範囲を指定した場合は、横に並んだセルが条件を満たすかを判定し、横方向に範囲を指定した場合は、縦に並んだセルが条件を満たすかを判定します。

[AD]
[AD]

〇〇以上〇〇以下のセルを数える

COUNTIFS関数を用いると〇〇以上〇〇以下といった条件を指定することもできます。

例えば、次のような名簿の中で30代の人数を数えてみましょう。

30代ということは年齢が30以上、39以下であればいいので、計算式は次のようになります。

=COUNTIFS(G2:G11,”>=30″,G2:G11,”<=39″)

ここでのポイントとしては、2つの検索範囲を同じセル範囲にすることです。そうすることで同じセル範囲の中で、30以上という条件を満たすセル、かつ、39以下という条件を満たすセルを数えることができます。

こんなときはタメせない

COUNTIFS関数では、複数のセル範囲を指定することができますが、その指定範囲の大きさがずれているとエラーとなり正しく数えることができません。

例えば、次の計算式を見てみてください。

=COUNTIFS(A1:A5,”〇”,B1:B4,”〇”)

この計算式では、検索範囲1はA1:A5で縦に5セルとなっていますが、検索範囲2はB1:B4で縦に4セルとなっています。

この場合は、A5セルの条件に対応する2つ目のセルが存在しないため、エラーになってしまうのです。

[AD]
[AD]

隣り合っていないセル範囲を指定することもできる

ただし、選択範囲の大きさが同じであれば、その位置は、ずれていても問題ありません。

つまり、次のような計算式は問題なく数えられるのです。

=COUNTIFS(A2:A6,”〇”,B3:B7,”〇”)

しかし、ここでも注意が必要です。この計算式の場合は、A2セルに対応するセルはB3セルとなります。つまり、A2セルが〇でB3セルが〇の場合に数えられます。A2セルの隣にあるB2セルは関係ないのです。

下の図の場合は、隣り合うA4とB4は両方とも〇となっていますが、B列は1段ずれているので、A4セルに対応するセルはB5セルとなり、そのB5セルが×となっているため、数える対象にはなりません。

ほかのセルも同様で1段ずつずれるので、その結果答えは0となっています。

このように、範囲の大きささえ揃えておけば、位置をずらすことができますので、例えば、次のように違う表どうしで条件が一致するセルを数えることもできるのです。

COUNTIFS関数の範囲は複数行×複数行の指定も可能です。その場合でも、指定する範囲どうしの大きさは合わせる必要があります。

これを応用すると次のような表どうしで条件が一致するセルを数えることができます。

[AD]
[AD]

こんなときにためセル!

エクセルの困った
エクセルで条件として「未入力の場合」を表す方法
このページでは、エクセル関数のIF関数やCOUNTIF関数などで「未入力」のセルかどうかを判定する方法についてご紹介します。
エクセル関数
COUNTIFS関数-複数の条件に合ったセルを数える-
複数の条件に合ったセルを数えるエクセル関数「COUNTIFS」についてご紹介します。
意外と知らない小ワザ
エクセルで条件付き順位を出す方法 RANKIF関数はない?
条件を付けて順位を求めたい場合、RANKIF関数を使いそうですが、エクセルにはRANKIF関数はありません。しかし別の関数を応用することで、条件付きの条件を求めることができます。このページでは、条件付きで順位を求める方法をご紹介します。
意外と知らない小ワザ
エクセルで順位を求めるRANK関数はある別の関数で代用できる!
順位を求めるときに使用するRANK関数。実は、ある関数でも順位を求めることができるんです。 このページでは、ちょっとした小ネタとしてRANK関数の代わりになる関数をご紹介します。
タイトルとURLをコピーしました