Excelで「営業部の売上データが何件あるか数えたい」「特定の条件に一致する数値データだけをカウントしたい」と思ったことはありませんか?
データ量が多くなると、フィルターで絞り込んで手動で数えるのは手間がかかりますよね。条件を変えるたびにやり直すのも面倒です。
そんなときに便利なのがExcelの DCOUNT関数 です。条件に一致するレコードの中から、数値が入っているセルの個数を自動で数えてくれますよ。
この記事では、DCOUNT関数の基本的な書き方から複数条件・OR条件・期間指定などの応用例まで解説します。よくあるエラーの対処法や、似た関数との使い分けもあわせて紹介しますね。
ExcelのDCOUNT関数とは?
DCOUNT関数は「ディーカウント」と読みます。Database COUNTの略で、データベース形式の表から条件に一致するレコードの「数値データの個数」を求める関数です。
Excelにはデータベース関数と呼ばれるグループがあります。DCOUNT関数はそのひとつで、DCOUNTA関数(空白以外をカウント)やDAVERAGE関数(条件付き平均)と同じ仲間です。
データベース関数の特徴は、条件をセル上に書き出して指定するところです。数式の中に条件を埋め込まないので、条件を変えたいときはセルの値を書き換えるだけで済みますよ。
DCOUNT関数の大きなポイントは 数値データだけを数える ところです。文字列や空白はカウントしません。「売上が入力されているレコードだけ数えたい」「テストの点数が記録されている人数を知りたい」といった場面にぴったりですね。
DCOUNT関数はExcel 2003以降のすべてのバージョンで使えます。Googleスプレッドシートでも同じ書き方で動くので、覚えておくと活用の幅が広がりますよ。
ExcelのDCOUNT関数の書き方(構文と引数)
基本構文
=DCOUNT(データベース, フィールド, 検索条件)
引数は3つあり、すべて必須です。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| データベース | 必須 | 見出し行を含むセル範囲(例: A1:D10) |
| フィールド | 必須 | カウント対象の列の見出し名(”売上”)または列番号(1始まり) |
| 検索条件 | 必須 | 見出し行+条件値を含むセル範囲 |
データベース には、表全体を見出し行ごと指定します。見出し行がないと正しく動作しないので注意してください。
フィールド には、数値を数えたい列を指定します。指定方法は2通りあります。
| 指定方法 | 書き方の例 | 説明 |
|---|---|---|
| 列の見出し名をダブルクォーテーションで囲む | “売上” | 見出しが「売上」の列を対象にする |
| 列番号を数値で指定する | 4 | 左端から4番目の列を対象にする |
見出し名で指定するほうが数式の意味がわかりやすいので、基本的にはこちらをおすすめしますよ。
検索条件 には、見出し行と条件値がセットになったセル範囲を指定します。条件範囲はデータベースの範囲と重ならない場所に作ってください。重なっていると正しい結果が返りません。
DCOUNT関数の基本的な使い方
ここでは、社員データから特定の部署で売上データが入っている人数を求める例で解説します。
サンプルデータ
以下のような社員リストがA1:D7に入っているとします。
| 名前 | 部署 | 年齢 | 売上 |
|---|---|---|---|
| 田中 | 営業部 | 32 | 450 |
| 佐藤 | 総務部 | 28 | |
| 鈴木 | 営業部 | 45 | 620 |
| 高橋 | 開発部 | 35 | |
| 伊藤 | 営業部 | 29 | 380 |
| 渡辺 | 総務部 | 41 |
総務部と開発部の売上列は空白になっています。DCOUNT関数は数値だけを数えるので、空白セルはカウントされません。
条件の設定
F1:F2に条件を入力します。
| F1 | F2 |
|---|---|
| 部署 | 営業部 |
F1にはデータベースの見出しと同じ文字列を入力します。F2には抽出条件の値を入力します。
数式の入力
営業部で売上データが入っている人数を求める数式は次のとおりです。
=DCOUNT(A1:D7, "売上", F1:F2)
この数式は「A1:D7のデータベースから、部署が営業部のレコードを探して、売上列に数値が入っているセルの個数を返す」という意味です。
営業部のメンバーは田中(450)、鈴木(620)、伊藤(380)の3人で、全員売上が入っています。結果は 3 になります。
条件を「総務部」に変えるとF2のセルを書き換えるだけでOKです。総務部は佐藤と渡辺の2人ですが、売上列が空白なので結果は 0 になりますよ。
DCOUNT関数の応用:複数条件やOR条件でカウントする
AND条件(すべての条件を同時に満たす)
複数の条件をすべて満たすレコードの数値データを数えるには、条件を 同じ行 に並べます。
たとえば「営業部」かつ「年齢が30以上」で売上データがあるレコードを数えるには、条件範囲を次のように設定します。
| F1 | G1 |
|---|---|
| 部署 | 年齢 |
| 営業部 | >=30 |
=DCOUNT(A1:D7, "売上", F1:G2)
営業部かつ30歳以上は田中(32歳・450)と鈴木(45歳・620)の2人です。どちらも売上に数値が入っているので、結果は 2 になります。
OR条件(いずれかの条件を満たす)
いずれかの条件を満たすレコードの数値データを数えるには、条件を 別の行 に書きます。
たとえば「営業部」または「開発部」で売上データがあるレコードを数えるには、条件範囲を次のように設定します。
| F1 |
|---|
| 部署 |
| 営業部 |
| 開発部 |
=DCOUNT(A1:D7, "売上", F1:F3)
営業部は田中・鈴木・伊藤の3人で全員売上あり。開発部は高橋の1人で売上は空白です。数値が入っているのは3件なので、結果は 3 になります。
数値の範囲条件(◯以上◯以下)
「売上が400以上700以下」のような範囲指定も、同じ列の見出しを2つ並べてAND条件で表現します。
| F1 | G1 |
|---|---|
| 売上 | 売上 |
| >=400 | <=700 |
=DCOUNT(A1:D7, "売上", F1:G2)
400以上700以下にあてはまるのは田中(450)、鈴木(620)の2人なので、結果は 2 です。「100以上」「2026年4月以前」のような期間集計もこのパターンで対応できますよ。
AND条件とOR条件の使い分けがデータベース関数のポイントです。「同じ行に書けばAND、別の行に書けばOR」と覚えておけば迷いませんよ。
DCOUNT関数でよくあるエラーと対処法
#VALUE! エラー
フィールド名が間違っている場合に発生します。
- 原因: フィールドに指定した見出し名がデータベースの見出し行に存在しない
- 対処法: ダブルクォーテーションの中の文字列が、データベースの見出し行と完全に一致しているか確認してください。スペースの有無や全角半角の違いにも注意しましょう
フィールドを列番号で指定しているときは、番号が列数の範囲内に収まっているかも確認してみてください。
結果が0になる
条件に一致するレコードがないか、対象列に数値が入っていない場合に起こります。
- 原因1: 検索条件の値が正しくない(スペルミス、全角半角の違いなど)
- 原因2: フィールドで指定した列に文字列しか入っていない
- 原因3: 条件範囲の見出しがデータベースの見出しと一致していない
- 対処法: 条件の値と見出しが正しいか確認してください。DCOUNT関数は数値だけを数えるので、文字列をカウントしたい場合はDCOUNTA関数を使いましょう
#NAME? エラー
数式の入力ミスで発生します。
- 原因: 関数名のスペルミス、またはフィールド名のダブルクォーテーション忘れ
- 対処法: 「DCOUNT」のスペルを確認してください。フィールド名を文字列で指定する場合は
"売上"のようにダブルクォーテーションで囲む必要があります
DCOUNT関数と似た関数の違い・使い分け
DCOUNT関数とDCOUNTA関数の違い
いちばん混同しやすいのがDCOUNT関数とDCOUNTA関数です。違いはカウント対象にあります。
| 比較項目 | DCOUNT関数 | DCOUNTA関数 |
|---|---|---|
| カウント対象 | 数値のみ | 空白以外すべて(文字列・数値・日付など) |
| 空白セル | カウントしない | カウントしない |
| 文字列セル | カウントしない | カウントする |
| 用途 | 数値データの件数を知りたいとき | 入力済みセルの件数を知りたいとき |
先ほどのサンプルデータで比べてみます。
=DCOUNT(A1:D7, "売上", F1:F2)→ 3(数値が入っている田中・鈴木・伊藤をカウント)=DCOUNTA(A1:D7, "売上", F1:F2)→ 3(空白以外をカウント、この例では同じ結果)
もし売上列に「未確定」のような文字列が入っているセルがあった場合、DCOUNT関数は数えませんがDCOUNTA関数は数えます。「数値だけ数えたい」ならDCOUNT関数、「空白以外を数えたい」ならDCOUNTA関数を選んでください。
DCOUNT関数とCOUNTIF関数の違い
COUNTIF関数も条件付きカウントができますが、仕組みが異なります。
| 比較項目 | DCOUNT関数 | COUNTIF関数 / COUNTIFS関数 |
|---|---|---|
| 条件の指定方法 | セル範囲で指定(条件表を作る) | 数式の中に直接書く |
| カウント対象 | 数値のみ | 条件に一致するセルすべて |
| 複数条件 | AND/OR条件を行の並びで表現 | COUNTIFS関数を使う |
| 条件の変更 | セルの値を書き換えるだけ | 数式を編集する必要がある |
| 向いている場面 | 条件を頻繁に変える分析 | 条件が固定の集計 |
DCOUNT関数が向いているケース:
COUNTIF関数が向いているケース:
- 条件がシンプルで固定されているとき
- 条件表を別に作りたくないとき
まとめ
この記事では、ExcelのDCOUNT関数の使い方を解説しました。
- DCOUNT関数は、データベース形式の表から条件に一致するレコードの「数値データの個数」を数える関数
- 引数は「データベース」「フィールド」「検索条件」の3つで、すべて必須
- 数値だけをカウントする(文字列や空白はカウントしない)
- AND条件は同じ行、OR条件は別の行に条件を書く
- 同じ列の見出しを並べると「以上以下」の範囲条件も指定できる
- 文字列も含めて数えたい場合はDCOUNTA関数を使う
データベース関数は条件をセル上で管理できるのが最大のメリットです。フィルターをかけて手動で数える作業から卒業して、DCOUNT関数で効率的にデータ集計をしてみてくださいね。
