※購入先、ダウンロードへのリンクにはアフィリエイトタグが含まれており、それらの購入や会員の成約、ダウンロードなどからの収益化を行う場合があります。

DCOUNT関数の使い方|条件範囲の作り方からCOUNTIFSとの違いまで完全解説

Excelで条件付きの件数を集計しようとしたとき、「COUNTIFSでは式が複雑になりすぎる」「OR条件が増えて管理できない」「なぜか結果が0になる」といった壁に直面した経験はないでしょうか。
そのような場面で力を発揮するのが、データベース関数の一つである DCOUNT関数 です。

DCOUNT関数は、条件をセル範囲として“見える形”で管理できるため、条件が多い集計や、後から条件を変更する業務に非常に向いています。一方で、条件範囲の作り方や「数値だけを数える」という特性を正しく理解していないと、思い通りの結果が得られず、難しい関数だと感じてしまいがちです。

本記事では、DCOUNT関数の基本的な考え方から、つまずきやすい条件範囲の作法、AND・OR条件の整理方法、よくあるエラーの原因と対処法、COUNTIFSとの使い分けまでを体系的に解説いたします。
「なぜその結果になるのか」を理解しながら読み進めることで、DCOUNT関数を実務で安心して使いこなせるようになる構成です。

※本コンテンツは「記事制作ポリシー」に基づき、正確かつ信頼性の高い情報提供を心がけております。万が一、内容に誤りや誤解を招く表現がございましたら、お手数ですが「お問い合わせ」よりご一報ください。速やかに確認・修正いたします。

目次

DCOUNT関数でできることと向いている集計

DCOUNTは条件に合う数値の件数を数える

DCOUNTは、Excelの「データベース関数」の一つです。名前の通り、データベース(=見出し行付きの表)を前提としており、条件に合うレコードのうち、指定フィールドに数値が入っている件数を返します。

ここで誤解が起きやすいのが、「件数=行数」だと思い込むケースです。DCOUNTは行数を数える関数ではありません。数える対象はあくまで指定した列(フィールド)に入っている“数値”のセル数です。

たとえば、次のような表を想定します。

  • A列:日付

  • B列:地域

  • C列:担当

  • D列:売上(本来は数値が入る)

  • E列:備考(文字列が入る)

「地域=東京」の行が10行あったとしても、売上(D列)が空白の行が2行、文字列(例:「未入力」)が1行混じっていれば、DCOUNTの結果は 7 になります。つまりDCOUNTは、条件付きで「数値がちゃんと入っている件数」を確認するのに向いています。入力漏れチェック、データ品質の確認、数値列の欠損検知などに役立ちます。

COUNTIFSよりDCOUNTが便利になる場面

COUNTIFSは汎用性が高く、多くの現場で標準的に使われています。一方で、条件が複雑になってくると、COUNTIFSは次のような課題が出やすくなります。

  • OR条件(AまたはB)を式で表現すると長くなり、ミスが増える

  • 条件が増えるほど式が読みづらく、引き継ぎやレビューが難しい

  • 条件の変更が頻繁だと、式を修正するたびに壊れやすい

DCOUNTは、条件を「式の中」ではなく「シート上の条件範囲」に置けます。つまり、関数自体は比較的短く保ちつつ、条件だけをセルで差し替えて運用できます。

条件が変わることが前提の集計(月次レポート、週次の営業集計、監査チェック、検品の抽出条件など)では、DCOUNTは「壊れにくい設計」に寄せやすいのが利点です。

ExcelとAccessで同名機能がある点に注意

「DCOUNT(Excel)」と「DCount(Access)」は名称が似ていますが、目的と書き方が異なります。

  • Excel:DCOUNT(データベース関数)

    • 見出し行を含む表範囲を対象に、条件範囲で絞り込み、指定列の数値セル数を数える

  • Access:DCount(定義域集計・ドメイン集計)

    • テーブルやクエリを対象に、条件式(文字列)で絞り込み、件数を返すことが多い

検索結果では両方が混ざることがあるため、「Excelで使いたいのにAccessの説明を読んでいた」という混乱が起こりがちです。本記事はExcelのDCOUNTを中心に解説し、Access側はFAQで整理いたします。


DCOUNT関数の書式と引数の意味

データベースは見出し行を含める

DCOUNTの基本書式は次のとおりです。

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

このうち「データベース」は、集計対象となる表範囲です。DCOUNTで最も多いミスの一つが、見出し行を含めずに範囲指定してしまうことです。DCOUNTはデータベース形式(見出し行+データ行)を前提としているため、基本は次のように指定します。

例:A1:E101が表(A1:E1が見出し)

  • データベース:A1:E101

また、表の行数が増減する運用なら、次のいずれかにしておくと安定します。

  • Excelの「テーブル」にして、構造化参照(例:Table1[#All])を使う

  • 余裕を持った範囲指定ではなく、テーブル化で伸縮に追従させる

ただし、DCOUNTに慣れるまでは「通常のセル範囲」で理解を固め、その後テーブル化に進むのが取り組みやすいことが多いです。

フィールドは列名か列番号で指定する

「フィールド」は、どの列を数えるか(数値が入っているセル数の対象列)を指定します。指定方法は主に2つです。

  1. 列見出し名(文字列)で指定

  • "売上" のように、見出しと同じ文字列を指定します。
    例:DCOUNT(A1:E101,"売上",G1:G2)

  1. 列番号で指定

  • データベース範囲の左端の列を「1」として数えます。
    例:A1:E101の「売上」がD列なら、A=1, B=2, C=3, D=4 なので 4 を指定します。
    例:DCOUNT(A1:E101,4,G1:G2)

現場で便利なのは、トラブル時の切り分けに列番号指定を使うことです。列見出し名指定は読みやすい反面、次のような落とし穴があります。

  • 見出しの全角半角、余計なスペース、表記揺れ(売上/売り上げ)が混ざる

  • 見出しが途中で変更され、式が突然合わなくなる

「同じ文字に見えるのに一致していない」問題は地味に厄介です。列番号指定はそうした揺れの影響を受けにくいため、安定運用の観点でも選択肢になります。

条件は条件範囲で指定する

DCOUNTの最大の特徴が「条件」を条件範囲(セル範囲)で指定することです。ここが理解できると、DCOUNTはぐっと扱いやすくなります。

条件範囲の基本構造は次のとおりです。

  • 1行目:見出し(フィールド名)

  • 2行目以降:条件値(文字列、数値、比較演算子、ワイルドカードなど)

例:地域が「東京」の条件範囲(G1:G2)

  • G1:地域

  • G2:東京

この「G1の見出し」が、データベース側の見出し(B1が地域なら、そのセルの文字)と一致している必要があります。ここがズレると、条件が効かず、結果が0になったり、意図しない集計になったりします。


DCOUNT関数の条件範囲の作り方

条件範囲の基本ルール

条件範囲を作るときは、次のルールを守るだけでミスが大きく減ります。

  • 条件範囲の1行目は「見出し」

  • 見出しはデータベースの見出しと一致させる

  • 条件範囲はデータベース範囲の外側に置く

  • 条件セルは“必要なものだけ”埋めればよい(空欄は条件なし扱い)

たとえば、A1:E101に表があり、B列が「地域」、D列が「売上」だとします。東京の売上件数(売上が数値の件数)を出したいなら、次の構成が基本です。

  • 条件範囲:G1:G2

    • G1:地域

    • G2:東京

  • 式:=DCOUNT(A1:E101,"売上",G1:G2)

ポイントは「売上が数値の件数」であることです。東京の行数ではなく、東京かつ売上が数値の行が数えられます。行数が欲しい場合は、DCOUNTではなくDCOUNTAや別設計を検討します(FAQと使い分けで整理します)。

AND条件とOR条件の書き分け

DCOUNTは、条件の組み合わせを「行」と「列」で表現します。ここが理解できると、OR条件がとても扱いやすくなります。

  • 同じ行に並ぶ条件(複数列に条件を書く)= AND条件

  • 別の行に書く条件(行を分ける)= OR条件

AND条件の例

「地域=東京」かつ「担当=佐藤」の売上件数を数える

  • 条件範囲:G1:H2

    • G1:地域 H1:担当

    • G2:東京 H2:佐藤

  • 式:=DCOUNT(A1:E101,"売上",G1:H2)

同じ2行目に条件が並んでいるので、両方を満たす(AND)行だけが対象になります。

OR条件の例

「地域=東京」または「地域=大阪」の売上件数を数える

  • 条件範囲:G1:G3

    • G1:地域

    • G2:東京

    • G3:大阪

  • 式:=DCOUNT(A1:E101,"売上",G1:G3)

条件が行で分かれているので、東京の条件行、または大阪の条件行に一致する(OR)ものが対象になります。

複合ORの考え方

「(地域=東京 かつ 担当=佐藤)または(地域=大阪 かつ 担当=田中)」のようなORは、次のように条件範囲を2行にして表現できます。

  • 条件範囲:G1:H3

    • G1:地域 H1:担当

    • G2:東京 H2:佐藤

    • G3:大阪 H3:田中

この形は、COUNTIFSで式を2本書いて足すよりも、条件の見通しが良くなることが多いです。

ワイルドカードと比較演算子の書き方

条件セルには、単純な一致(東京)のほか、比較演算子やワイルドカードも使えます。

比較演算子(数値)

  • ">=100":100以上

  • "<500":500未満

条件セルに「>=100」と入力する場合、Excel内部では文字列として扱われますが、DCOUNTの条件としては正しく解釈されます。

さらに、セル参照で柔軟にしたい場合は、次のように組み立てます。

  • 例:H2に閾値(100)が入っている

    • 条件セル:=">="&H2

日付の比較

日付は特につまずきやすいので、次のコツが有効です。

  • 文字として「2025/01/01」と打つより、日付セルにして参照する

  • 条件セルは =">="&開始日セル のようにする

  • 表側の日付が“文字列”になっていないか確認する(後述)

ワイルドカード(部分一致)

  • *(アスタリスク):任意の文字列

    • 例:"*東京*" は「東京を含む」

  • ?(クエスチョン):任意の1文字

    • 例:"A?3" は「A+任意1文字+3」に一致

部分一致は便利ですが、データの表記揺れ(全角半角、余計なスペース)に弱い面があります。うまく一致しないときは、データ側を整えるか、補助列で正規化するのが堅実です。

条件範囲テンプレの作り方

DCOUNTを「一度だけの集計」ではなく「運用」に強くする方法が、条件範囲テンプレです。おすすめは次の作り方です。

  1. 条件範囲を固定位置(例:シート右側)に確保する

  2. 使う可能性のある見出しを横に並べる(地域、担当、商品、日付、売上など)

  3. 条件行を複数行(OR用)確保する

  4. 使わない条件セルは空欄でOKにする

例えば、G1:K1に「地域」「担当」「商品」「日付」「売上」を置き、G2:K6まで空けておきます。すると、集計担当者は「必要な条件だけ書く」「ORが必要なら行を増やす」という操作だけで済みます。関数側は条件範囲全体(G1:K6など)を参照しておき、条件セルの入力内容で結果が変わる設計にできます。

このテンプレを作ると、次の効果が出やすいです。

  • 条件が“見える”のでレビューがしやすい

  • 条件変更が式修正ではなくセル入力になるため事故が減る

  • OR条件が増えても管理が崩れにくい


DCOUNT関数の実例で覚えるパターン集

数値入力済み件数で入力漏れを見つける

DCOUNTの強みが最も分かりやすいのが、入力漏れの検知です。例えば「売上が本来必ず入力されるはず」という業務では、DCOUNTで「売上が数値の件数」を取り、別の方法で「対象レコード数」を取れば、差分が入力漏れの可能性になります。

例:地域が東京のレコード数と、売上入力済み件数を比較

  • レコード数(東京の行数)が欲しい場合

    • 選択肢1:売上以外の必ず入る列をDCOUNTAで数える

    • 選択肢2:別列に常に1を入れる列(チェック列)を作り、その列をDCOUNTで数える

ここでは分かりやすく「チェック列」を作る方法を紹介します。

  1. 表に「チェック」列を追加し、全行に数値の1を入れる(または自動入力)

  2. 東京のレコード数:DCOUNT(表範囲,"チェック",東京条件)

  3. 東京の売上入力済み件数:DCOUNT(表範囲,"売上",東京条件)

  4. 2)と3)の差が、売上未入力(または文字列入力)を含む可能性

この設計なら、「行数が欲しい」「売上入力済み件数が欲しい」を同じDCOUNTの枠組みで比較でき、レポートの説明がしやすくなります。

日付条件で期間内の件数を数える

日付条件は、次のように「開始日」「終了日」をセルに置いて参照すると運用しやすくなります。

  • 開始日:M2(例:2025/01/01)

  • 終了日:N2(例:2025/01/31)

条件範囲は次のように作れます(AND条件として同じ行に置きます)。

  • G1:日付 H1:日付

  • G2:=">="&$M$2 H2:="<="&$N$2

同じ見出し「日付」を2列に置けるのがポイントです。これで「日付が開始日以上」かつ「日付が終了日以下」を表現できます。

式は次のイメージになります。

  • =DCOUNT(A1:E101,"売上",G1:H2)

さらに、地域や担当も条件に加えるなら、条件範囲を横に伸ばして同じ行に追加します(AND条件)。日付と他条件を併用した集計は、月次レポートや期間キャンペーンの集計で頻出です。

部分一致で条件に合う件数を数える

顧客名や商品名など、表記が長い項目では部分一致が役立ちます。

  • 見出し:商品名

  • 条件:"*プレミアム*"

これで「商品名に“プレミアム”を含む」レコードが対象になります。

部分一致の集計で現場がつまずく典型は「余計なスペース」です。例えば「プレミアム 」のように末尾スペースが混じると、見た目は同じでも一致しない場合があります。そうしたデータは、補助列でTRIM(前後の空白除去)やCLEAN(制御文字除去)を使って整えた列を作り、その列を条件対象にすると安定します。


DCOUNT関数でよくあるエラーと直し方

条件範囲に見出しがない

DCOUNTがうまく動かない原因のトップクラスが「条件範囲の見出し不足」です。

  • NG例:条件範囲が「東京」だけ

  • OK例:上段に「地域」、下段に「東京」

さらに、見出しがあるのに動かない場合は、次の“微妙な不一致”が疑われます。

  • 見出しに余計な空白が入っている

  • 全角・半角が違う

  • 「地域」ではなく「地域名」になっている

対策としては、データベースの見出しセルをそのままコピーして条件範囲の見出しに貼り付けるのが確実です。「手入力で合わせる」のは、運用が長くなるほど事故要因になりがちです。

フィールド名の不一致と列番号指定のコツ

フィールド名指定(”売上”など)が原因で集計がズレることがあります。そういうときは、列番号指定に切り替えて切り分けるのが早道です。

  • DCOUNT(A1:E101,"売上",条件) が怪しい

  • DCOUNT(A1:E101,4,条件) に変えて結果が合うか確認する

列番号で正しく集計できるなら、フィールド名(見出し文字列)の不一致が原因の可能性が高いです。見出しセルに余計なスペースがないか、統一されているかを確認し、必要ならTRIMで整えた見出しに統一する(または見出し自体を修正する)と安定します。

また、列の並び替えや列追加が頻繁に起きる運用では、列番号指定は列位置が変わると壊れます。その場合は、列名指定に戻すのが安全です。つまり「列位置が固定かどうか」で、列名指定と列番号指定の適性が変わります。

数値として認識されていない

DCOUNTは「数値セル」を数えるため、見た目が数字でも“文字列の数字”は数えません。特に次のケースが多いです。

  • CSV取り込みで数字が文字列になった

  • 先頭にアポストロフィ(’)が付いている

  • 全角数字が混ざっている

  • 「1,000円」のように単位が混じっている

対処法は状況によって変わりますが、代表的には次の通りです。

  • 「区切り位置」を使って数値に変換する

  • VALUE関数で数値化する(ただし単位混じりは前処理が必要)

  • 置換で「円」「,」などを除去し、数値に直す

  • 補助列を作り、集計は補助列を対象にする

運用の観点では「集計対象列が数値として整っている」状態を作るのが最も確実です。DCOUNTの式を工夫するより、データ整形の工程を整えるほうが、長期的にトラブルが減ります。

結果が0になるときの切り分けチェック

結果が0になったときは、闇雲に式を直すより、チェックリストで順番に潰すほうが早く収束します。以下を上から確認してください。

  • データベース範囲に見出し行が含まれている

  • 条件範囲に見出し行がある(最低2行構成)

  • 条件範囲の見出しはデータベースの見出しと完全一致している

  • 条件値(東京など)がデータの表記と一致している(全角半角、空白、表記揺れ)

  • フィールド列は“数値”として認識されている(文字列の数字ではない)

  • AND/ORの組み方が意図通り(同じ行=AND、別行=OR)

  • 条件が厳しすぎて該当ゼロになっていない(条件を一つずつ外して確認)

特に「見出し一致」「数値認識」の2点は、DCOUNTの性質上、影響が大きいポイントです。


DCOUNT関数とCOUNTIFSの使い分け

条件の可視化とメンテ性で選ぶ

DCOUNTとCOUNTIFSは、どちらが上というより「運用の目的」で選ぶのが合理的です。目安としては次の通りです。

  • COUNTIFSが向く

    • 条件が少なく、固定で、式を一度作ればほぼ変えない

    • 参照範囲がテーブル化されていて、列を足しても式を増やしたくない

    • チーム内で条件のレビューがあまり発生しない

  • DCOUNTが向く

    • 条件が増減する(例:担当者、地域、期間、商品カテゴリなどを切り替える)

    • 条件を“見える形”で共有し、レビュー・監査したい

    • OR条件が多く、式の増殖を避けたい

DCOUNTは「条件をセルで管理する」という設計思想です。条件を分離することで、関数そのものは短く保ち、条件の運用に耐える形になります。

OR条件が多いならDCOUNTが有利

OR条件が多いほど、DCOUNTの良さが出ます。COUNTIFSでORを表現する典型は「COUNTIFS(…) + COUNTIFS(…) + …」という形になりがちで、次の事故が起こりやすくなります。

  • 条件の追加漏れ

  • 条件の重複(二重カウント)

  • どの条件が入っているか第三者が把握しづらい

DCOUNTなら、OR条件は「条件行を増やす」だけで表現できます。条件表がそのまま仕様書のような役割になり、レビューや引き継ぎがしやすくなります。

テーブル化・ピボットで代替すべきケース

DCOUNTは強力ですが、分析の目的によっては別手段のほうが自然なケースもあります。

  • 切り口を変えながら集計したい(担当別、地域別、月別など)

    • ピボットテーブルが適します

  • データ整形(列分割、正規化、重複排除など)を先にしたい

    • Power Queryが適します

  • 大量データを高速に分析したい

    • データモデル(Power Pivot)や別基盤の検討余地があります

「セル1つに条件付き件数が欲しい」のがDCOUNTの得意領域です。一方で、分析の切り替えや多軸集計が中心なら、ピボットやPower Queryのほうが効率的なことが多いです。道具を目的で選ぶのが最終的な成果につながります。


よくある質問

DCOUNTとDCOUNTAの違いは?

  • DCOUNT:条件に合うレコードのうち、指定フィールドが「数値」のセル数を数える

  • DCOUNTA:条件に合うレコードのうち、指定フィールドが「空白でない」セル数を数える(文字列も対象)

「売上が入力されている件数(数値だけ)」ならDCOUNTが向きます。
「備考が入力されている件数(文字も含む)」ならDCOUNTAが向きます。
この違いを押さえると、DCOUNTの用途が明確になります。

フィールドを省略するとどうなる?

DCOUNTは、運用上はフィールドを明示するのが安全です。省略や曖昧な指定は、第三者が式を見たときに「何を数えているのか」が分かりづらく、後からメンテナンスで事故が起こりやすくなります。

特にDCOUNTは「行数ではなく、指定列の数値セル数」を数えるため、フィールド指定が曖昧だと結果の意味が変わってしまいます。原則として、列名指定か列番号指定で明確にしてください。

AccessのDCountとは別物?

別物です。ExcelのDCOUNTは「表+条件範囲」という構造で集計しますが、AccessのDCountは「ドメイン(テーブルやクエリ)+条件式」という形で使われることが一般的です。用途も、Accessではフォームやレポートに件数を表示するなど、アプリケーション側のUI表示と結びつく場面が多くなります。

検索で混ざりやすいので、「今使っているのがExcelかAccessか」をまず確認すると迷いが減ります。

同名のdcount()を見かけたが何?

データ分析やログ分析の世界では、dcount()という同名の関数が出てくることがあります。例えばクエリ言語の文脈では、ユニーク数(カーディナリティ)を求める目的で使われることがあり、ExcelのDCOUNTとは意味も仕様も異なります。

「Excelの関数を調べたはずなのに、別の技術記事に辿り着いた」という場合は、同名ゆえの検索混同が原因です。ExcelのDCOUNTは、見出し行付きの表に対して、条件範囲で絞り込む“データベース関数”として理解してください。


まとめ

DCOUNT関数は、条件を満たすレコードのうち、指定列に数値が入っているセルの件数を数える関数です。最大のつまずきポイントは「条件範囲」ですが、次の要点を押さえれば、再現性高く運用できます。

  • データベース範囲は見出し行を含める

  • 条件範囲は「見出し+条件」の2行以上で作り、見出しは完全一致させる

  • ANDは同じ行、ORは別の行で表現する

  • 数字に見えても文字列なら数えないため、データ型を確認する

  • 条件が増減しやすい運用、OR条件が多い運用ではDCOUNTが強い

次に取るべき行動としては、まず「条件範囲テンプレ」を作り、条件の変更をセル操作に寄せることをおすすめします。式の修正頻度が下がり、ミスや引き継ぎコストが目に見えて減っていきます。

なお、Excel/Access/別基盤で同名の関数が存在するため、検索時は「どの製品・どの文脈のDCOUNTか」を確認してください。仕様や目的が異なるものを混ぜてしまうと、理解が遠回りになりやすいためです。