Excel(エクセル)のDCOUNT関数の使い方|複数の条件を満たす数値をカウントする
使用関数:DCOUNT
DCOUNT(ディーカウント)関数とは?
DCOUNTは指定した条件を満たす数値の個数を数える関数です。Excel(エクセル)の関数で名前の冒頭に「D」が付くものは「データベース関数」に属し、データベースで使用することを前提とした機能を持っています。
データベースとはExcelの原則(データを項目別に列見出しで分類し、1行1データにまとめる)に沿って作成されているデータ表のことです。
データベースについて、データベースの作り方などを初心者にも分かりやすく解説しています。
DCOUNTはデータベースの指定した列(フィールド)から指定した条件で数値データを検索し、その個数を数えます。複数の条件をAND条件・OR条件のどちらでも指定できる便利な関数です。
DCOUNTA関数とDCOUNT関数の違い
DCOUNTの他にDCOUNTA関数があります。名前も機能も似ていますがカウントするデータの種類が違います。
- DCOUNTは範囲内の数値を数える関数です。日付・時刻も数値データなのでカウントされます。
- DCOUNTAは範囲内の数値・日付・文字列・数式・論理値など全てのデータの個数を数える関数です。
カウントしないのは空白だけで、この「空白」は文字通りセルの中が空っぽという意味です。入力されている数式の結果が空白文字=””だと見た目には空っぽですが、これはデータとしてカウントされます。
DCOUNT関数の使い方・基本
DCOUNT関数の簡単な使用例です。
日付をキーにして「アルバイトA」の出勤数をカウントします。
データベース関数は「関数ライブラリ」に載っていないので、引数のダイアログを開く時は「関数の挿入」ボタンをクリックします。
「関数の挿入」が開いたら「関数の分類」ボックスの▼を押して下へスクロールし、「データベース」をクリックします。
「関数名」の一覧が「データベース」配下のものに切り替わるので、「DCOUNT」を選択し、「OK」。
DCOUNT関数の引数ダイアログが開きます。
DCOUNT関数の書式
データベース関数の引数は一律に「データベース」「フィールド」「条件」の3つです。
書式の構成はこうなります。
第一引数「データベース」
この引数には列見出しも含めて表を指定します。
第二引数「フィールド」
「フィールド」は表の列見出しのことです。集計するデータ範囲ではなく、集計する列の見出しのセルをクリックで指定するか、または列の番号(左から何番目にあるか)を指定します。この引数は省略も可能で、省略すると条件を満たすレコード(行)の数が返ります。
ここでは「アルバイトA」をクリックで指定。
第三引数「条件」
「条件」は値の検索条件です。これは別に「条件表」を作って指定します。
ここでは列見出しの一つ「日付」をキーにして条件を指定します。必ず、条件表にも列見出しと同じ項目名を付けておき、項目名と条件を全て選択して指定します。
DCOUNT関数で列の数値セルがカウントされました。
DCOUNT関数の引数「フィールド」の省略
引数「フィールド」は省略できると前章で書きました。その場合はレコード(行)全体がカウント対象となります。
DCOUNTは数値をカウントする関数ですが、これを応用すると、引数「フィールド」を省略して数値データ以外でもカウントすることができます。
下図の例では、文字列だけの表から担当者と商品名を条件にDCOUNTで個数を数えています。
「データベース」には表全体を指定、「条件」には「担当:担当者A」「商品:キャラクター作成」という複数条件を指定、「フィールド」は省略しました。
文字列の表から条件を満たすデータがカウントされました。
ちなみに、「フィールド」に列見出しの一つを指定してみると、「0」が返されます。ダイアログのDCOUNT関数を要約した文章に「条件を満たすレコードの中で数値が入力されているセルの個数を返す」とあるように、指定したフィールドの列には数値が入力されている必要があります。「フィールド」に文字列のある列を指定するとNGで、何も指定しなければ条件を満たす行数が返るということです。
DCOUNT関数で複数の条件を指定する方法
DCOUNTは条件を指定してカウントする関数ですが、検索条件を指定してカウントする関数ならCOUNTIF・COUNTIFSがよく使われます。この2つの関数とDCOUNT関数の違いをまず、はっきりさせておきましょう。
DCOUNT関数とCOUNTIF、COUNTIFS関数との違い
COUNTIF・COUNTIFS関数とDCOUNT関数の一番大きな違いは「条件表」を作るか作らないかです。
「条件表」とは検索条件を入力したセル範囲です。DCOUNTでは、これをシート上に予め作っておいて、そのセル範囲を3番目の引数「条件」に指定します。
なんだか面倒そうに思えるかもしれませんが、この表を作ることでDCOUNT関数ではOR条件の指定やAND・OR複合条件の指定が可能になります。
DCOUNT関数にAND条件を指定する
条件表には条件を検索する元表の列(フィールド)と対応する「列見出し」を置きます。「性別」フィールドの値を条件にするなら同じ「性別」という列見出しを作り、その下のセルに条件を入力します。同じ列見出しを複数並べることもできます。
「元表」と「条件表」の列見出しの文字は完全に一致させます。
DCOUNT関数ではAND条件とOR条件のどちらも指定できますが、条件表の並べ方にルールがあります。
指定した全ての条件に一致する値を取り出す「AND条件」は同じ行に横並びにします。
下図の「数学と化学が80点以上の女性」という条件表は横並びのAND条件です。数学と化学の両方が80点以上でなければカウントされません。
DCOUNT関数にOR条件を指定する
指定した条件のどちらかが一致する値を取り出す「OR条件」は行をずらして縦方向に並べます。
複数のフィールド(列)でOR条件を指定する条件表
「数学」と「化学」の2つの異なるフィールドそれぞれに指定する「数学か、または化学の点数が80点以上」というOR条件は、行を1段ずらして入力します。
同一のフィールド(列)でOR条件を指定する条件表
商品の評価表を元に、「味」フィールドに「満点」または「上出来」というOR条件を指定する場合は、同じ列に縦方向に並べます。
DCOUNT関数にANDとORの複合条件を指定する
AND条件とOR条件を組み合わせる例です。
「(AND)数学と化学が75点以上の女性」(OR)または、「(AND)数学と化学が80点以上の男性」
「(AND)数学が80点以上の女性」(OR)または、「(AND)化学が80点以上の女性」
DCOUNT関数でワイルドカードを使ったあいまい検索をする
DCOUNTの条件表に文字列をそのまま入れて検索することもできます。
前方一致で検索する
例えば、以下のように「WEB制作」を条件にしてDCOUNTで制作を請け負った件数を数えると、
「WEB制作・プレミアム」も「WEB制作・スタンダード」もカウントされます。ワイルドカードを使わなくても「前方一致」で検索されるようです。
後方一致で検索する
「作成」を条件にして「~作成」の件数を全て数えるには、やはりワイルドカードを使う必要があります。条件表に「*作成」と入力して列見出しと一緒にDCOUNTの「条件」に指定します。
- DCOUNT関数はデータベースから条件に一致する数値データをカウントします
- DCOUNT関数は関数ライブラリにはないので、「関数の挿入」から操作します
- DCOUNT関数の引数「データベース」と「条件(条件表)」は列見出しを含めて指定します
- DCOUNT関数の引数「フィールド」を省略すると、数値データにかかわらず、条件と合致するレコード(行)の数をカウントできます
- 省略しない場合、「フィールド」には数値の入った列を指定する必要があります。文字列の入ったフィールドを指定すると「0」が返ります
- DCOUNT関数の引数「条件」には検索条件を入力したセル範囲の「条件表」を作って指定します
- DCOUNT関数の条件表のAND条件は同じ行に横並べにします
- DCOUNT関数の条件表のOR条件は異なる行に縦並べにします
- DCOUNT関数の条件表には同じ列見出しを並べて複数の条件指定ができます
- DCOUNT関数の条件表に文字列を入力して検索し、カウントできます
- DCOUNT関数の条件表にワイルドカードなしで文字列を入力して前方一致で検索し、カウントできます
- DCOUNT関数の条件表にワイルドカードを使って文字列を入力して部分一致・後方一致で検索し、カウントできます