Googleスプレッドシートで指定したデータ範囲内で複数条件に一致するデータの件数を数えたい場合は、DCOUNT関数を使用します。
類似の関数としてCOUNTIF関数、COUNTIFS関数があります。
これらの関数は、できることはほぼ同じですが、数式、条件の入れ方が異なります。
データと条件が同じならどの関数を使用しても同じ結果になります。
大きな違いとしては、COUNTIFS関数はAND条件ですが、DCOUNT関数ではOR条件とAND条件どちらでも設定することができます。
INDEX
スプレッドシートのDCOUNT関数の使い方
性別が「男」でクラスが「1」の生徒の人数を表示する
2つの条件に一致するデータの件数を求める
性別が「男」の中でクラスが「1」の生徒の人数を表示するには以下のような数式を入力します。
1. 人数を表示させたいセルを選択します。
(今回はセルH4)
2. =DCOUNT(A3:D13,D3,F3:G4) と入力します。
- データベース:データの範囲を見出し含めて選択する。
- フィールド:選択したデータベース内の件数を数える列見出しのセルを指定
- 条件:条件を入力したセル範囲(F3からG4)
=DCOUNT(A3:D13,D3,F3:G4)
上記の条件(男でクラスが1)に一致した生徒の人数は「3人」ということがわかりました。
データベース、条件で指定するセル範囲には必ず項目名(見出し)を入れます。
さらに条件で使用する項目名は、データベースにある項目名と同じである必要があります。
違う項目名になっていると条件が正しく認識されません。
他にもデータベース関数は複数あり、計算方法が異なりますが数式の入力方法は同じなので、1つ覚えれば他のデータベース関数もすぐに理解することができます。
OR条件で複数条件に一致する合計値を求める
データベース関数は、複数条件を指定することができます。
複数の条件の場合、AND条件、OR条件の考え方があります。
- AND条件:指定した条件をすべて満たす
- OR条件:複数条件のどれか1つでも満たす
これらの条件をデータベース関数で指定するには、
- AND条件:同じ行で指定
- OR条件:別の行で指定
になります。
上記の例では、
・セルF4の性別が「男」
・セルG4のクラスが「1」
という2つの条件は同じ行に記載されているためAND条件になります。(両方満たすものを計算)
・セルF5の性別が「女」
・セルG5のクラスが「2」
こちらの2つの条件も同じ行なのでAND条件です。
条件が記載されている表の上段(セルF4,G4)と、下段(セルF5、G5)の条件は別の行なのでOR条件になります。
上記画像の例では、
①性別が「男」でクラスが「1」
もしくは、
②性別が「女」でクラスが「2」
という、条件①②のどちらかに一致しているものを計算の対象=それぞれの条件の合計をするという意味になります。
DCOUNT関数とCOUNTIFS関数の違い
条件が同じであれば、DCOUNT関数、COUNTIFS関数どちらを使用しても結果は同じになります。
今回の例ではそれぞれの関数では以下のようになります。
DCOUNTの式
=DCOUNT(A3:D13,D3,F3:G4)
COUNTIFSの式
=COUNTIFS(D4:D13,B4:B13,F4,C4:C13,G4)
違いは、DCOUNT関数は条件がいくつあっても、1つのセル範囲として指定しています。
COUNTIFS関数は条件ごとにセル範囲を指定します。
そのため、条件が多いほど数式がどんどん長くなります。
条件が多いほどCOUNTIFS関数は数式が長くなり、内容を確認するのに時間がかかります。
DCOUNT関数はシート内に表形式で条件を指定しているため、条件が増えた時にはセル範囲を拡げる必要はあっても、数式が長くなることはありません。
条件が多いほどDCOUNTの方がわかりやすいことが実感できると思います。
DCOUNTで使えるワイルドカード
DCOUNT関数で指定する条件は、テキストの完全一致だけでなく、数字の条件やワイルドカードを使用して部分一致での条件も指定できます。
条件を数字の範囲で指定する時
数字の範囲で条件指定する時によく使用される演算子と意味は以下です。
下記の記号を使用することで、50点以上のように条件を数字の範囲で指定することができます。
記号 | 意味 | 入力例 |
= | 等しい | =100 |
<> | 等しくない | <>0 |
< | 未満 | <50 |
<= | 以下 | <=50 |
> | より大きい | >50 |
>= | 以上 | >=50 |
条件を文字列の部分一致で指定する時(ワイルドカード)
部分一致と呼ばれる条件の時にはワイルドカードで条件を指定します。
ワイルドカードとは、文字の代わりに*や?の記号を使用した条件指定の方法です。
「*」(アスタリスク):文字数を限定しない
条件の種類 | 条件 | 該当する例 |
前方一致 | 株式会社* | 株式会社A、株式会社ABC |
後方一致 | *株式会社 | A株式会社、ABC株式会社 |
部分一致 | *株式会社* | A株式会社B、ABC株式会社DE |
「?」(クエスチョンマーク):1文字の代わり
条件の種類 | 条件 | 該当する例 |
前方一致 | 株式会社? | 株式会社A |
後方一致 | ?株式会社 | A株式会社 |
部分一致 | ?株式会社? | A株式会社B |
スプレッドシートのDCOUNT関数の構文
スプレッドシートのDCOUNT関数は以下のように入力します。
引数 | 説明 |
---|---|
データベース | データの範囲を見出し含めて選択する。 |
フィールド | 選択したデータベース内の合計を求める列見出しのセルを指定。 |
条件 | 条件を入力したセル範囲を選択する。 |