スプレッドシートのDCOUNT関数の使い方|条件に合う数値の個数

スポンサーリンク

「営業部のデータが何件あるか数えたい」「金額が入力されているレコードだけカウントしたい」。こんな場面、フィルタをかけて目で数えていませんか。

条件が変わるたびにフィルタをかけ直して手動で数えるのは面倒ですよね。しかも数え間違いの心配もあります。

そんなときに便利なのがDCOUNT関数です。条件を別のセル範囲に書いておくだけで、該当するレコードの数値セルの個数を自動で返してくれます。この記事では、DCOUNT関数の基本から複数条件・OR条件の応用、DCOUNTA関数やCOUNTIFS関数との使い分けまでまとめて紹介します。

スプレッドシートのDCOUNT関数とは? — 条件に合う数値セルの個数を数える

DCOUNT関数(読み方: ディー カウント)は、データベース形式の表から条件に合うレコードを探し、指定した列の数値セルの個数を返す関数です。

名前は「Database COUNT(データベースのカウント)」の略です。DSUM(条件付き合計)やDAVERAGE(条件付き平均)と同じ「データベース関数」の仲間になります。

DCOUNT関数の特徴をまとめると、次のとおりです。

  • 条件をセル範囲(条件範囲)で指定するスタイル
  • 条件範囲を書き換えるだけで集計条件をすぐ切り替えられる
  • 複数条件(AND条件・OR条件)にも対応
  • 数値が入ったセルだけをカウントする(文字列・空白はカウントしない)
  • 見出し付きのリスト形式のデータが前提

NOTE

DCOUNT関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同じ関数があるので、ファイルのやり取りでも安心です。

DCOUNT関数の書き方(構文と引数)

基本構文

=DCOUNT(データベース, フィールド, 条件)

引数は3つです。すべて必須で、省略はできません。

引数の説明

引数必須/任意説明
データベース必須見出し行を含むデータ範囲(例: A1:D100)
フィールド必須カウントする列の見出し名(文字列)または列番号(数値)
条件必須条件を記述したセル範囲(見出し行+条件行)

それぞれ詳しく見ていきましょう。

データベース(第1引数)

データベースには、見出し行を含めたデータ範囲を指定します。先頭行に列の見出し(「部署」「商品名」「金額」など)が入っている必要があります。

フィールド(第2引数)

カウントしたい列を指定します。指定方法は2つあります。

  • 文字列で指定: "金額" のように、見出しと同じ文字列をダブルクォーテーションで囲む
  • 数値で指定: データベースの左端列を1として、列の位置を数値で指定する(3列目なら 3

文字列で指定するほうが、あとから見たとき何の列かわかりやすいのでおすすめです。

条件(第3引数)

条件範囲には、見出し行と条件行の2行以上のセル範囲を指定します。これがDCOUNT関数の最大の特徴です。

条件範囲の作り方は次のセクションで詳しく説明しますね。

TIP

フィールドに列番号を使う場合、データベース範囲の左端が1です。シートのA列が1とは限らないので注意してください。

DCOUNT関数の基本的な使い方

サンプルデータ

次のような売上データを使って説明します。

 ABCD
1部署担当者商品金額
2営業部田中ノートPC150000
3総務部鈴木プリンター35000
4営業部佐藤モニター48000
5経理部高橋ノートPC150000
6営業部田中キーボード8000
7総務部伊藤モニター48000

条件範囲の設定方法

DCOUNT関数の条件は、別のセル範囲に書きます。ここがCOUNTIFS関数との大きな違いです。

条件範囲は次のルールで作ります。

  1. 1行目に見出しを書く — データベースの見出しと完全に同じ文字列を使う
  2. 2行目に条件値を書く — 一致させたい値を入力する

たとえば「営業部」の金額列に数値が入っているレコードの個数を数えたい場合、シートの空いているエリア(たとえばF1:F2)に次のように書きます。

 F
1部署
2営業部

数式はこうなります。

=DCOUNT(A1:D7, "金額", F1:F2)

結果は 3 です。営業部の3件(田中のノートPC、佐藤のモニター、田中のキーボード)すべてに金額(数値)が入っているので、3件がカウントされます。

TIP

条件範囲の見出しは、データベースの見出しと1文字でも違うと正しく動きません。コピー&ペーストで作ると確実ですよ。

比較演算子を使った条件

条件値には比較演算子も使えます。

条件値の書き方意味
営業部「営業部」と完全一致
>=5000050,000以上
<100000100,000未満
<>営業部「営業部」以外

たとえば「金額が50,000以上」のレコード数を数えたい場合は、条件範囲をこう書きます。

 F
1金額
2>=50000
=DCOUNT(A1:D7, "金額", F1:F2)

結果は 4 です(150000が2件、48000が2件の合計4件)。

DCOUNT関数の実践的な使い方・応用例

複数条件(AND条件)でカウントする

「営業部」かつ「金額が50,000以上」のように、複数の条件をすべて満たすレコードだけ数えたい場合です。

AND条件は、条件範囲の同じ行に複数の見出し・条件値を横に並べて書きます。

 FG
1部署金額
2営業部>=50000
=DCOUNT(A1:D7, "金額", F1:G2)

結果は 2 です。営業部で金額50,000以上は、田中のノートPC(150000)と佐藤のモニター(48000)の2件です。

OR条件でカウントする

「営業部」または「経理部」のように、どちらかの条件に合うレコードを数えたい場合です。

OR条件は、条件値を別の行に書くのがポイントです。

 F
1部署
2営業部
3経理部
=DCOUNT(A1:D7, "金額", F1:F3)

結果は 4 です。営業部3件 + 経理部1件で合計4件になります。

同じ行に書くとAND条件、別の行に書くとOR条件。このルールを覚えておきましょう。

AND条件とOR条件を組み合わせる

「営業部で金額50,000以上」または「総務部で金額50,000以上」をカウントする場合です。

 FG
1部署金額
2営業部>=50000
3総務部>=50000
=DCOUNT(A1:D7, "金額", F1:G3)

結果は 3 です。営業部50,000以上が2件(150000、48000)、総務部50,000以上が1件(48000)で合計3件です。

条件範囲を切り替えて集計を素早く変える

DCOUNT関数の最大の強みは、条件をセルに書いているため、セルの値を書き換えるだけで集計結果が即座に変わる点です。

たとえば条件範囲のF2セルを「営業部」から「総務部」に書き換えるだけで、DCOUNT関数の結果が自動的に総務部の件数に切り替わります。数式を修正する必要はありません。

ドロップダウンリスト(データの入力規則)と組み合わせると、選択するだけで部署別の件数をサッと確認できる簡易ダッシュボードが作れますよ。

数値の入力状況をチェックする

DCOUNT関数は「数値セルだけ」を数える特性を活かして、データの入力チェックにも使えます。

たとえば金額列に数値が入っている件数をDCOUNTで数え、全体の件数と比較すれば、金額が未入力(空白や文字列)のレコードがないか確認できます。

=DCOUNT(A1:D7, "金額", F1:F2) = COUNTA(A2:A7)

条件に合うレコードすべてに金額が入っていればTRUEになります。FALSEなら入力漏れがあるということです。

DCOUNT関数とDCOUNTA関数の違い(数値のみ vs 空白以外すべて)

DCOUNT関数とよく似た関数にDCOUNTA関数があります。最大の違いは「何をカウントするか」です。

比較項目DCOUNT関数DCOUNTA関数
カウント対象数値セルのみ空白以外のすべてのセル
文字列セルカウントしないカウントする
論理値(TRUE/FALSE)カウントしないカウントする
空白セルカウントしないカウントしない
構文=DCOUNT(データベース, フィールド, 条件)=DCOUNTA(データベース, フィールド, 条件)

具体例で違いを見てみましょう。次のデータがあるとします。

 ABC
1部署担当者金額
2営業部田中150000
3営業部佐藤未定
4営業部山本 

条件範囲に「部署 = 営業部」を指定して金額列をカウントすると、次のようになります。

  • =DCOUNT(...)1(数値の150000だけ。「未定」は文字列、3行目は空白なのでカウントしない)
  • =DCOUNTA(...)2(150000と「未定」の2件。空白の3行目だけカウントしない)

使い分けのポイント: 「金額や数量など数値データが何件あるか」を知りたいときはDCOUNT。「何かしら入力されているセルが何件あるか」を知りたいときはDCOUNTAを使いましょう。

DCOUNT関数とCOUNTIFS関数の使い分け

スプレッドシートで条件付きカウントをするなら、COUNTIFS関数も使えます。どちらを選ぶか迷う方が多いので、違いを整理します。

比較項目DCOUNT関数COUNTIFS関数
条件の指定方法セル範囲(条件範囲)数式の引数に直接書く
カウント対象数値セルのみ条件に合うセルすべて
OR条件条件範囲の行を追加するだけCOUNTIFS同士を足し算で対応
条件の切り替えやすさセルを書き換えるだけ数式を編集する必要あり
数式の見やすさシンプル(引数3つ固定)条件が多いと数式が長くなる
条件範囲の管理シート上にスペースが必要数式内で完結
ワイルドカード使える使える

使い分けのポイント:

  • 条件が固定で変わらない → COUNTIFS関数がシンプルでおすすめ
  • 条件を頻繁に切り替えたい → DCOUNT関数が便利(セルを変えるだけで結果が変わる)
  • OR条件が複雑 → DCOUNT関数のほうが直感的に書ける
  • 条件範囲のスペースを取りたくない → COUNTIFS関数で数式内に完結させる
  • 数値セルだけ数えたい → DCOUNT関数が最適(COUNTIFS関数は数値以外もカウントする)

実務では、定型レポートの集計にDCOUNT関数、単発の集計にCOUNTIFS関数と使い分けるとスムーズです。

よくあるエラーと対処法

DCOUNT関数で「思った結果にならない」ケースをまとめました。

症状原因対処法
結果が0になる条件範囲の見出しがデータベースの見出しと一致していない見出しをコピー&ペーストして完全一致させる
結果が0になる条件値の前後に余分なスペースが入っているTRIM関数でスペースを除去するか、手入力し直す
結果が0になるフィールド列に数値ではなく文字列が入っているDCOUNT関数は数値セルだけカウントする。文字列を含めるならDCOUNTAを使う
#VALUE! エラーフィールドに存在しない列名を指定しているデータベースの見出しと同じ文字列を使う
想定より大きい値が返る条件範囲に空白行が含まれている条件範囲を必要な行だけに絞る(空白行は「すべて一致」と解釈される)
想定と違う列がカウントされるフィールドの列番号を間違えている列番号ではなく見出し名(文字列)で指定するのがおすすめ
条件が部分一致になる条件値に *(アスタリスク)が含まれている完全一致にしたい場合は ="=営業部" のように先頭に = を付ける

TIP

結果が0になるトラブルで最も多いのは「見出しの不一致」です。全角・半角やスペースの違いも不一致になります。条件範囲の見出しはデータベースからコピー&ペーストで作りましょう。

Excelとの違い

DCOUNT関数はExcelとGoogleスプレッドシートで基本的に同じ動作です。

項目ExcelGoogleスプレッドシート
構文=DCOUNT(database, field, criteria)=DCOUNT(データベース, フィールド, 条件)
動作条件に合う数値セルの個数条件に合う数値セルの個数
条件範囲の仕様見出し行+条件行見出し行+条件行
ワイルドカード* ? が使える* ? が使える
OR条件の書き方条件値を別の行に記述条件値を別の行に記述

引数名の表記は日本語と英語で異なりますが、機能は同じです。Excelでの使い方はExcelのDCOUNT関数の記事で詳しく解説しています。

まとめ

DCOUNT関数は、データベース形式の表から条件に合う数値セルの個数を数える関数です。

ポイントを整理します。

  • 構文は =DCOUNT(データベース, フィールド, 条件) で、引数は3つ
  • 条件は数式内ではなくセル範囲(条件範囲)に書くのが特徴
  • 条件範囲は「見出し行+条件行」のセットで作る
  • 同じ行に条件を横並びにすればAND条件、別の行にすればOR条件
  • 条件セルの値を変えるだけで集計対象を切り替えられる
  • 数値セルだけを数える。文字列も含めるならDCOUNTA関数を使う
  • 条件固定ならCOUNTIFS関数、条件を頻繁に変えるならDCOUNT関数がおすすめ
  • 結果が0になるときは見出しの不一致をまずチェック
  • ExcelのDCOUNT関数と同じ動作で、互換性も安心

まずは簡単な表で =DCOUNT(A1:D7, "金額", F1:F2) から試してみてください。


関連記事

タイトルとURLをコピーしました