2025/6/18

エクセルCOUNTIFS関数の使い方: 複数条件ありで個数をカウント - OR条件への対応方法も

Thumbnail for エクセルCOUNTIFS関数の使い方: 複数条件ありで個数をカウント - OR条件への対応方法も

はじめに

エクセルのCOUNTIFS関数は、 データ集計や数値計算など、多くの場面で頻繁に使用される関数の1つです。 COUNTIF関数の上位互換に相当します。

ここでは、COUNTIFS関数の

  • 基本機能・使い方
  • 注意事項
  • 関連する関数
  • 使用例、応用法

について取り扱います。

基本機能・使い方

COUNTIFS関数は、 選択範囲の中で 指定した条件に合致した数をカウントする関数 です。
複数の条件を指定することで、AND条件が設定できます OR条件を設定したい場合については後述)。

COUNTIFS関数
COUNTIFS ( 配列1, 検索条件1, 配列2, 検索条件2, ... )

指定した 配列1 データ中で、 検索条件1 に合致する個数をカウント する。
配列とその条件のセット(例:配列2検索条件2)を追加することで、 複数条件を追加設定できる(最大127セット)。

配列1
: 必須
A1:A5
検索条件1で検索するデータ範囲。
検索条件1
: 必須
">=" & E2
カウントする条件1。
配列2
: 任意
A1:A5
検索条件2で検索するデータ範囲。
検索条件2
: 任意
">=" & E2
カウントする条件2。

検索条件には、 比較演算子が使用できます。
比較演算子と値の間に、 &(アンパサンド/アンド記号)が必要 なことが多いので注意です。

比較演算子

数値同士や文字列同士を比較するときに使用する演算子です。

比較演算子意味使用例
(文字列)

(数値)

(参照)
=等しい (==)"=A""=" & 0"=" & A1
<>等しくない (\ne)"<>A""<>" & 0"<>" & A1
>より大きい (>>)">" & 0">" & A1
<より小さい (<<)"<" & 0"<" & A1
>=以上 (\geq)">=" & 0">=" & A1
<=以下 (\leq)"<=" & 0"<=" & A1

※ 比較演算子 (+&) は省略可

注意事項

検索条件で部分一致を使用できるか、 意図した結果にならない場合にどうしたらいいのか、 について解説します。

検索条件の仕様

  • 部分一致検索(ワイルドカード)に対応(詳細は後述)
  • 大文字・小文字の区別はしない
  • 全角・半角の区別はする
  • 一度に照合できる文字列は 最大255文字まで

うまく動作しないときの原因と対策

COUNTIFS関数がうまく動作しない場合、 以下のような原因が考えられます。

  • うまくカウントされないとき:

    • 検索条件の記入方法が間違っている。
      対策:以下を再確認する(参考:上記「比較演算子」)。
      • 比較演算子は "で囲まれているか?
      • 文字列は "で囲まれているか?
      • 比較演算子と数値 / 参照は &で結ばれているか?
      • 参照を "で囲んでいないか?
    • 数値が文字列形式になっており、かつ、=<>以外を使用している。
      対策:データを数値形式に変換する。
  • #VALUE!エラーが表示されるとき:

    • 複数指定している検索範囲の 配列 のサイズが異なっている。
      対策:配列(検索範囲)のサイズをすべて同じにする。

関連する関数

COUNTIFS関数と似た機能を持つ関数には、以下があります。

  • COUNT関数:数値データの個数をカウントする。
  • COUNTA関数:空白以外のセルの個数をカウントする。
  • COUNTBLANK関数:(見た目が)空白のセルの個数をカウントする。
  • COUNTIF関数:単一条件に一致するセルの個数をカウントする。
  • DCOUNT / DCOUNTA関数:他の列に条件設定して、数値セル / 空白以外のセルの個数をカウントする。
  • SUBTOTAL関数: フィルター機能による非表示の値を除外 して、データの個数をカウントできる。
  • AGGREGATE関数: フィルター機能による非表示の値を除外エラー値を除外 してデータの個数を取得できる。
  • SUMPRODUCT関数:条件付きのカウントに応用できる。

使用例、応用例

COUNTIFS関数の使用例・応用例として、以下のパターンを紹介します。

  • OR条件の設定: COUNTIFS関数の複数回使用。
  • 度数の算出: 「○以上○未満」の複数条件を設定。
  • 部分一致検索: 検索条件にワイルドカードを使用。
  • 重複の確認: 参照開始位置を固定。

OR条件の設定

COUNTIFS関数を複数回使用することで、OR条件を設定できます。 ここでは、条件の重複がない (条件1かつ条件2のパターンが存在しない)場合の OR条件を設定した例を示します。

関数の構成

=COUNTIFS( データ範囲 , 検索値1 ) + COUNTIFS( データ範囲 , 検索値2 )

SUMPRODUCT関数であれば、AND OR条件にかかわらず単体の関数で記述 できます。

度数の算出

COUNTIFS関数に複数条件を設定し、 度数(下限値以上 上限値未満のカウント数)を算出する例です。

関数の構成

=COUNTIFS( データ範囲 , ">=" & 下限値 , データ範囲 ,"<" & 上限値 )

部分一致検索

COUNTIFS関数では、検索条件にワイルドカードを使用できるため、 部分一致検索が可能です。 ワイルドカードの文字数を限定したい場合は、 *(アスタリスク記号)でなく?(疑問符 / ハテナ記号)を使用します。

関数の構成

=COUNTIFS( データ範囲 , 検索値 )

検索値に、ワイルドカード * 使用


ワイルドカード

ワイルドカードとは、任意の文字列を表す特殊な文字のことです。
言葉で表すと「ほにゃらら」「○○」などのイメージです。
特定の文字列が含まれるかどうかを調べるときに使用します。
関連する記号としては、以下があります。

  • * (アスタリスク記号):任意の文字列(文字数不定)
  • ? (疑問符 / ハテナ記号):任意の1文字
  • ~ (チルダ記号):エスケープ記号(*, ? 記号を検索文字として使用する場合に使用)

重複の確認

COUNTIFS関数に指定するデータ範囲の開始位置を固定 ($記号使用) することで、 重複した値の確認に使用できます。 この例では、自身の値もカウントするため -1 しています。

関数の構成

=COUNTIFS( データ範囲 , ) -1

データ範囲の参照開始位置を固定


【数値が文字列形式になっている例】
ABCD
1❌文字列を"≦"で比較✅数値を"≦"で比較
21
31
41
52
62
7
803

ABCDEF
1A
2B条件1Bである
3C条件2Cである
4D
5Eカウント2

ABCDEF
1データ
21範囲度数
310~22
442~41
544~66
636~81
75
84
95
105
117

ABCDEF
11-a
21-b検索値*-b
31-cカウント2
42-a
52-b

AB
1データ重複数
2A0
3B0
4B1
5C0
6D0