Excel使いこなしの基礎と応用

OR条件指定でカウントできるDCOUNT関数

使用関数:DCOUNT

「DCOUNT」はAND条件、OR条件、その複合条件でデータベースを検索して、セルの数をカウントする関数です。その基本的な使い方、条件表の作成例を図解します。

目次


DCOUNTの構成

DCOUNT(ディーカウント)は表から条件に一致するデータを取り出して個数を数えます。DATABASEの頭文字「D」を冠したデータベース関数の一つです。

データベース関数は「関数ライブラリ」に載っていないので、引数のダイアログを開く時は「関数の挿入」ボタンをクリックします。
関数の挿入ボタン
関数の挿入」が開いたら「関数の分類」ボックスの▼を押して下へスクロールし、「データベース」をクリックします。
関数の挿入ダイアログで関数の分類をデータベースにする
関数名」の一覧が「データベース」配下のものに切り替わるので、「DCOUNT」を選択し、「OK」。
関数名の一覧からDCOUNTを選択
DCOUNT関数の引数ダイアログが開きます。データ関数の引数は一律に「データベース」「フィールド」「条件」の3つです。
DCOUNT関数の引数ダイアログボックス

データベース」はデータベース仕様で作られた表のことです。▶Excel仕様のデータベース(住所録)を作る上での大原則と必須の項目一覧を参考にして下さい。
この引数は列見出しも含めて表を指定します。
フィールド」は表の列見出しのこと。集計するデータ範囲ではなく、集計する列の見出しのセルだけを指定します。この引数の指定については次章で詳述します。
条件」は値の検索条件です。これは別に「条件表」を作って指定します。

下の例は「数学と化学が80点以上の女性」を求める引数「データベース」と「条件」の範囲です。
「データベース」と「条件」の範囲
※「データベース」も「条件」も必ず列見出しまで含めて指定しましょう。これをうっかりしてエラーになるケースが多いようです。

引数「フィールド」の指定と省略

DCOUNTの場合、引数「フィールド」の指定は迷うところです。
前述例で言えば、求める「数学と化学が80点以上の女性」の人数はレコードの数なので、フィールドに入力されている値自体はなんでもいいわけです。言い換えれば、どのフィールドを指定しても返る答えは同じということです。
仮に、「日本史」フィールドを指定してみましょう。
フィールドを指定
ダイアログの指定はこう↓。答えは「3」で、正解が返されています。
DCOUNTダイアログで引数指定
この数式の「H1」を英語の「D1」に変えても、数学の「E1」に変えても、同様に正解が返されます。
但し、ダイアログのDCOUNT関数を要約した文章に「条件を満たすレコードの中で数値が入力されているセルの個数を返す」とあるように、「フィールド」に指定する見出しの列には数値が入力されている必要があります。
ダイアログのDCOUNT関数を要約した文章
文字列が入力された「氏名」や「性別」のフィールドを指定すると「0」が返されることになります。
フィールドに指定する列の入力値は数値。文字列はダメ

結論としては、指定に迷う状況なら引数「フィールド」は省略してしまうのが一番です。フィールドを省略すると、条件に合致したレコードの数がそのまま返されます。
こんな感じ → =DCOUNT(A1:H21,,J1:L2)
文字列もカウントしたい場合は「DCOUNTA」を使います。

COUNTIF、COUNTIFSとの違い

検索条件を指定してカウントする関数なら、COUNTIFがよく使われます。複数の条件指定はCOUNTIFSを使います。この2つの関数とDCOUNTの一番大きな違いは「条件表」を作るか作らないかです。

条件表」とは検索条件を入力したセル範囲です。DCOUNTでは、これをシート上に予め作っておいて、そのセル範囲を3番目の引数「条件」に指定します。
なんだか面倒そうに思えるかもしれませんが、この表を作ることでOR条件の指定やAND・OR複合条件の指定が可能になるのです。

「条件表」の作り方と複数条件の指定方法

「列見出し」と「条件」を表形式で並べる
条件表には条件を検索する元表の列(フィールド)と対応する「列見出し」を置きます。「性別」フィールドの値を条件にするなら同じ「性別」という列見出しを作り、その下のセルに条件を入力します。同じ列見出しを複数並べることもできます。
元表と条件表の列見出しは一致させる
「元表」と「条件表」の列見出しの文字は完全に一致している必要があります。

DCOUNT関数ではAND条件とOR条件のどちらも指定できますが、条件表の並べ方にルールがあります。

AND条件

指定した全ての条件に一致する値を取り出す「AND条件」は同じ行に並べます。

前章の例で使った「数学と化学が80点以上の女性」という条件表は横並びのAND条件です。数学と化学の両方が80点以上でなければカウントされません。
AND条件は横に並べる

OR条件

指定した条件のどちらかが一致する値を取り出す「OR条件」は行をずらして縦方向に並べます。

異なるフィールドでOR条件を指定する条件表
「数学」と「化学」の2つの異なるフィールドそれぞれに指定する「数学か、または化学の点数が80点以上」というOR条件は、行を1段ずらして入力します。
OR条件は行を1段ずらして入力

同一のフィールドでOR条件を指定する条件表
商品の評価表を元に、「味」フィールドに「満点」または「上出来」というOR条件を指定する場合は、同じ列に縦方向に並べます。
同一のフィールドでのOR条件は縦に並べる

ANDとORの複合条件

AND条件とOR条件を組み合わせる例です。
(AND)数学と化学が75点以上の女性(OR)または、「(AND)数学と化学が80点以上の男性
ANDとORの複合条件表の例1

(AND)数学が80点以上の女性(OR)または、「(AND)化学が80点以上の女性
ANDとORの複合条件表の例2

まとめ

  • DCOUNT関数はデータベースから条件に一致するデータを取り出してカウントする
  • 関数ライブラリにはないので、「関数の挿入」から操作する
  • 引数「データベース」と「条件(条件表)」は列見出しを含めて指定する
  • 引数「フィールド」は多くの場合、省略
  • 「フィールド(列見出し)」を指定するなら数値が入った列。文字列の入ったフィールドを指定すると「0」が返る
  • 引数「条件」には検索条件を入力したセル範囲の「条件表」を作って指定する
  • 条件表のAND条件は同じ行に並べる
  • 条件表のOR条件は異なる行に並べる
  • 条件表に同じ列見出しを複数並べて条件指定できる


高機能の表計算ソフトExcelを活用すれば、仕事や私生活で、今あなたが必要とするいろいろなモノが作れます。その作成手順とデザイン、アイデアのヒントまでを可能な限り詳細にわかりやすくナビします。基本操作や関数、グラフに関する解説記事とともにご利用下さい。