COUNTIFS関数の条件は1つでもOK。OR条件も指定できる

Excelで「条件に一致するデータの個数を数える関数」といえばCOUNTIF(カウント・イフ)関数COUNTIFS(カウント・イフ・エス)関数ですが、これらはGoogleスプレッドシートでも利用できます。

条件が1つならCOUNTIF関数、複数条件ならCOUNTIFS関数と使い分けても構いませんが、COUNTIFS関数のみを覚えておいても不都合はありません。

Googleスプレッドシートにおける、COUNTIF関数とCOUNTIFS関数の構文は以下の通りです。

COUNTIF範囲, 条件

  • 範囲] ... 検索対象のセル範囲を指定します。
  • 条件] ... 検索条件を指定します。

COUNTIFS条件範囲1, 条件1, 条件範囲2, 条件2, ...)

  • 条件範囲] ... 検索対象のセル範囲を指定します。
  • 条件] ... 検索条件を指定します。

COUNTIF関数の引数である[範囲][条件]と、COUNTIFS関数の引数である[条件範囲][条件]は、同じ意味と捉えて問題ありません。

COUNTIFS関数では[条件範囲]と[条件]のセットを複数指定でき、1つのセットを指定したときはCOUNTIF関数と同じ動作になります。

指定した複数の条件は「AかつB」のAND条件となりますが、単純な四則演算を使って「AまたはB」のOR条件を指定することも可能です。例えば、以下のような条件を指定できます。

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

基本は「AかつB」のAND条件ですが、四則演算で「AまたはB」のOR条件も指定可能です。」

本記事では、活用範囲の広いCOUNTIFS関数の使い方を順番に見ていきましょう。

1つの条件を指定する

まずは、1つの条件のみを指定して男性会員を数えてみます。1つの条件を指定した場合、COUNTIF関数の結果と一致します。例として、関数式は以下になります。

	=COUNTIFS(C9:C28, D2)

なお、ここでは条件とする値をセルに入力していますが、数式中に直接指定する場合は「"」(ダブルクォーテーション)で囲むことを覚えておきましょう。

	=COUNTIFS(C9:C28, "男")
1COUNTIFS関数を入力する

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

セルF2に「=COUNTIFS(C9:C28,D2)」と入力します。

2結果が表示された

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

「男」のみを数えた結果が表示されました。COUNTIF関数を使って「=COUNTIF(C9:C28,D2)」としても結果は同じになります。

2つの条件に一致するデータを数える

ここでは2つの条件として「男性、かつ、来店回数が10回以上」を指定します。COUNTIFS関数の基本的な使い方です。入力する数式は以下の通りです。

	=COUNTIFS(C9:C28, D3, E9:E28, E3)

「10回以上」は「>=10」と表します。引数[条件]で利用できる演算子については、本記事末尾のHINTを参照してください。数式に直接指定するときは「"」で囲みます。演算子も含めて囲むことに注意してください。

	=COUNTIFS(C9:C28, "男", E9:E28, ">=10")

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

「男性、かつ、来店回数が10回以上」の条件に一致するデータが数えられました。

範囲内のデータを数える

今度は「来店回数が5回以上、かつ、10回未満」の人を数えます。数式で考えると「10>(来店回数)>=5」となるので、[来店回数]列を対象に、5回以上(>=5)、10回未満(<10)の2つの条件を指定することになります。

	=COUNTIFS(E9:E28, D4, E9:E28, E4)

ここでは数値を比較していますが、「COUNTIFS(A:A,"<=yyyy/mm/dd")」のように日付を比較することもできます。

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

「来店回数が5回以上、かつ、10回未満」の条件に一致するデータが数えられました。

OR条件で数える(条件の重複なし)

「AまたはB」のOR条件を指定します。ここでは「来店回数が3回以下、または、10回以上」の条件を指定します。3回以下は「"<=3"」、10回以上は「">=10"」です。

ただし、この2つの範囲は重ならないため、単純に複数条件を指定すると、結果は「0」になってしまいます。このようなときは、COUNTIFSの数式を2つ用意して結果を足し合わせます。

	=COUNTIFS(E9:E28, D5) + COUNTIFS(E9:E28, E5)

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

「来店回数が3回以下、または、10回以上」の条件に一致するデータが数えられました。

フィルターの結果と比較して結果を確認してみましょう。

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

[来店回数]列で「2」「3」にチェックを付けます。

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

同様に「10」「11」「13」にチェックを付けて、[OK]をクリックします。

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

フィルターしたデータを選択して、件数を確認すると「13」となりました。COUNTIFS関数で数えた件数と一致していますね。

OR条件で数える(条件の重複あり)

OR条件で指定する「重複あり」の条件を考えてみましょう。条件は「新宿店の会員、または、来店回数が5回以上」です。先ほどと同じように2つの関数式を考えると、

	=COUNTIFS(D9:D28, D6) + COUNTIFS(E9:E28, E6)

となりますが、このままでは「新宿店の会員、かつ、5回以上来店」の人を2回数えてしまいます。

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

セルF6に「=COUNTIFS(D9:D28,D6)+COUNTIFS(E9:E28,E6)」と入力した結果です。結果は「14」となりました。

フィルターをかけて確認してみましょう。まずは「新宿店の会員」です。

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

[店舗]列で「新宿」を抽出しました。結果は7人です。5回以上来店が3人いますね。

続けて「5回以上来店」のフィルター結果です。

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

[来店回数]列で「5以上」を抽出しました。結果は7人です。新宿店の会員が3人います。

「新宿店」の抽出結果7人と「5回以上」の抽出結果7人を単純に足すと、「新宿店の会員、かつ、5回以上来店」の3人がダブっています。「新宿店の会員、かつ、5回以上来店」を求めて、最初の関数式から引きましょう。

	=COUNTIFS(D9:D28, D6) + COUNTIFS(E9:E28, E6) - COUNTIFS(D9:D28, D6, E9:E28, E6)

Googleスプレッドシートで複数条件に一致するデータを数える方法。COUNTIFS関数はOR条件も指定できる

セルF6の数式を修正した結果です。正しく11人となりました。

COUNTIFS関数では「AかつB」のAND条件の指定以外に、四則演算で「AまたはB」のOR条件が指定できることをおくと便利です。また、前述の通り、1つの条件を指定したときはCOUNTIF関数と同じ動作になります。

HINT引数[条件]に使える比較演算子

引数[条件]に使える比較演算子をまとめました。数式で指定するときは、条件に指定する値と一緒に「"」(ダブルクォーテーション)で囲みます。

引数[条件]に使える比較演算子

演算子 名称 使用例 結果
= 等しい =5 5と等しい
<> 等しくない <>渋谷 渋谷に等しくない
> より大きい >5 5より大きい
< より小さい <5 5より小さい
>= 以上 >=5 5以上
<= 以下 <=5 5以下

また、条件にワイルドカードを指定すると「あいまい検索」も可能です。ワイルドカード自体を検索したいときは、「*」や「?」を「~」で挟んで、「"~?~"」と指定してください。

引数[条件]に使えるワイルドカード

ワイルドカード 意味 使用例 結果の例
* 任意の文字列 新* 新宿、新橋、新大久保
? 任意の1文字 ?田 新田、本田、行田

関連記事