ExcelのDCOUNT関数の使い方|条件に一致する数値データの個数を数える

スポンサーリンク

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に入っているとします。

名前部署年齢売上
田中営業部32450
佐藤総務部28 
鈴木営業部45620
高橋開発部35 
伊藤営業部29380
渡辺総務部41 

総務部と開発部の売上列は空白になっています。DCOUNT関数は数値だけを数えるので、空白セルはカウントされません。

条件の設定

F1:F2に条件を入力します。

F1F2
部署営業部

F1にはデータベースの見出しと同じ文字列を入力します。F2には抽出条件の値を入力します。

数式の入力

営業部で売上データが入っている人数を求める数式は次のとおりです。

=DCOUNT(A1:D7, "売上", F1:F2)

この数式は「A1:D7のデータベースから、部署が営業部のレコードを探して、売上列に数値が入っているセルの個数を返す」という意味です。

営業部のメンバーは田中(450)、鈴木(620)、伊藤(380)の3人で、全員売上が入っています。結果は 3 になります。

条件を「総務部」に変えるとF2のセルを書き換えるだけでOKです。総務部は佐藤と渡辺の2人ですが、売上列が空白なので結果は 0 になりますよ。

DCOUNT関数の応用:複数条件やOR条件でカウントする

AND条件(すべての条件を同時に満たす)

複数の条件をすべて満たすレコードの数値データを数えるには、条件を 同じ行 に並べます。

たとえば「営業部」かつ「年齢が30以上」で売上データがあるレコードを数えるには、条件範囲を次のように設定します。

F1G1
部署年齢
営業部>=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条件で表現します。

F1G1
売上売上
>=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関数が向いているケース:

  • 条件をユーザーが自由に切り替えたいとき
  • AND条件とOR条件を組み合わせた複雑な抽出をしたいとき
  • データベース関数ファミリー(DAVERAGEDGETDPRODUCTなど)と一緒に使うとき

COUNTIF関数が向いているケース:

  • 条件がシンプルで固定されているとき
  • 条件表を別に作りたくないとき

まとめ

この記事では、ExcelのDCOUNT関数の使い方を解説しました。

  • DCOUNT関数は、データベース形式の表から条件に一致するレコードの「数値データの個数」を数える関数
  • 引数は「データベース」「フィールド」「検索条件」の3つで、すべて必須
  • 数値だけをカウントする(文字列や空白はカウントしない)
  • AND条件は同じ行、OR条件は別の行に条件を書く
  • 同じ列の見出しを並べると「以上以下」の範囲条件も指定できる
  • 文字列も含めて数えたい場合はDCOUNTA関数を使う

データベース関数は条件をセル上で管理できるのが最大のメリットです。フィルターをかけて手動で数える作業から卒業して、DCOUNT関数で効率的にデータ集計をしてみてくださいね。

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