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

はじめに
エクセルのCOUNTIFS
関数は、 COUNTIF
関数の上位互換に相当します。
ここでは、COUNTIFS
関数の
- 基本機能・使い方
- 注意事項
- 関連する関数
- 使用例、応用法
について取り扱います。
基本機能・使い方
COUNTIFS
関数は、
複数の条件を指定することで、AND
条件が設定できます OR
条件を設定したい場合については後述)。
配列1
, 検索条件1
, 配列2
, 検索条件2
, ... )指定した 配列1
データ中で、 検索条件1
に合致する個数をカウント する。
配列とその条件のセット(例:配列2
と検索条件2
)を追加することで、
複数条件を追加設定できる(最大127セット)。
配列1
検索条件1
配列2
検索条件2
検索条件
には、
比較演算子と値の間に、 &
(アンパサンド/アンド記号)が必要 なことが多いので注意です。
比較演算子
数値同士や文字列同士を比較するときに使用する演算子です。
比較演算子 意味 使用例
(文字列)
(数値)
(参照)=
等しい () "=A"
※"=" & 0
※"=" & A1
※<>
等しくない () "<>A"
"<>" & 0
"<>" & A1
>
より大きい () ">" & 0
">" & A1
<
より小さい () "<" & 0
"<" & A1
>=
以上 () ">=" & 0
">=" & A1
<=
以下 () "<=" & 0
"<=" & A1
※ 比較演算子 (+
&
) は省略可
注意事項
検索条件で部分一致を使用できるか、
検索条件の仕様
- 部分一致検索(ワイルドカード)に対応(詳細は後述)
- 大文字・小文字の区別はしない
- 全角・半角の区別はする
- 一度に照合できる文字列は 最大255文字まで
うまく動作しないときの原因と対策
COUNTIFS
関数がうまく動作しない場合、
-
うまくカウントされないとき:
- 検索条件の記入方法が間違っている。
対策:以下を再確認する(参考:上記「比較演算子」)。- 比較演算子は
"
で囲まれているか? - 文字列は
"
で囲まれているか? - 比較演算子と数値 / 参照は
&
で結ばれているか? - 参照を
"
で囲んでいないか?
- 比較演算子は
- 数値が文字列形式になっており、かつ、
=
や<>
以外を使用している。
対策:データを数値形式に変換する。
- 検索条件の記入方法が間違っている。
-
#VALUE!
エラーが表示されるとき:- 複数指定している検索範囲の
配列
のサイズが異なっている。
対策:配列
(検索範囲)のサイズをすべて同じにする。
- 複数指定している検索範囲の
関連する関数
COUNTIFS
関数と似た機能を持つ関数には、以下があります。
COUNT
関数:数値データの個数をカウントする。COUNTA
関数:空白以外のセルの個数をカウントする。COUNTBLANK
関数:(見た目が)空白のセルの個数をカウントする。COUNTIF
関数:単一条件に一致するセルの個数をカウントする。DCOUNT
/DCOUNTA
関数:他の列に条件設定して、数値セル / 空白以外のセルの個数をカウントする。SUBTOTAL
関数: フィルター機能による非表示の値を除外 して、データの個数をカウントできる。AGGREGATE
関数: フィルター機能による非表示の値を除外 、 エラー値を除外 してデータの個数を取得できる。SUMPRODUCT
関数:条件付きのカウントに応用できる。
使用例、応用例
COUNTIFS
関数の使用例・応用例として、以下のパターンを紹介します。
- OR条件の設定:
COUNTIFS
関数の複数回使用。 - 度数の算出: 「○以上○未満」の複数条件を設定。
- 部分一致検索: 検索条件にワイルドカードを使用。
- 重複の確認: 参照開始位置を固定。
OR条件の設定
COUNTIFS
関数を複数回使用することで、OR条件を設定できます。
関数の構成
=COUNTIFS(
データ範囲
,検索値1
) + COUNTIFS(データ範囲
,検索値2
)
SUMPRODUCT
関数であれば、AND
OR
条件にかかわらず単体の関数で記述 できます。
度数の算出
COUNTIFS
関数に複数条件を設定し、 下限値
以上 上限値
未満のカウント数)を算出する例です。
関数の構成
=COUNTIFS(
データ範囲
, ">=" &下限値
,データ範囲
,"<" &上限値
)
部分一致検索
COUNTIFS
関数では、検索条件にワイルドカードを使用できるため、 *
(アスタリスク記号)でなく?
(疑問符 / ハテナ記号)を使用します。
関数の構成
=COUNTIFS(
データ範囲
,検索値
)※
検索値
に、ワイルドカード*
使用
ワイルドカード
ワイルドカードとは、任意の文字列を表す特殊な文字のことです。
言葉で表すと「ほにゃらら」「○○」などのイメージです。
特定の文字列が含まれるかどうかを調べるときに使用します。
関連する記号としては、以下があります。
*
(アスタリスク記号):任意の文字列(文字数不定)?
(疑問符 / ハテナ記号):任意の1文字~
(チルダ記号):エスケープ記号(*
,?
記号を検索文字として使用する場合に使用)
重複の確認
COUNTIFS
関数に指定するデータ範囲の開始位置を固定 ($
記号使用) することで、 -1
しています。
関数の構成
=COUNTIFS(
データ範囲
,値
) -1※
データ範囲
の参照開始位置を固定