【エクセル】DCOUNTA関数で複数条件でセルの数を求める方法。OR条件やAND条件での使い方

Excel(エクセル)で単一条件や複数条件に合うセルの個数を求めるときはCOUNTIF関数や、COUNTIFS関数を用います。

しかし、これらの関数はOR条件(または)では利用できず、AND条件(なおかつ)でしか利用できません。

OR条件で文字や数値の入ったセルの数をカウントする時は、DCOUNTA関数(ディー・カウントエー)を利用します。

さらに、DCOUNTA関数は、OR条件でもAND条件でも、それらを組み合わせた複合条件でもセルの数を複数条件で求めることが出来る便利な関数です。

今回の記事では、DCOUNTA関数に関する以下の内容を解説します。

この記事で紹介すること

・DCOUNTA関数の構文と引数

・DCOUNTA関数とDCOUNT関数の違い

・DCOUNTA関数を使った実例(OR条件単一の列で設定)

・DCOUNTA関数を使った実例(OR条件複数の列で設定)

・DCOUNTA関数を使った実例(AND条件単一の列で設定)

・DCOUNTA関数を使った実例(AND条件複数の列で設定)

・DCOUNTA関数を使った実例(OR条件AND条件を混ぜて設定)

DCOUNTA関数とDCOUNT関数の違い

DCOUNTA関数に類似した関数として、DCOUNT関数というものがあります。

この2つの関数の違いをまずは理解して、どちらを使った方がいいか検討してください。

まず、DCOUNTA関数は、条件に合うセルであれば、数値のセル、文字のセル、半角スペース、全角スペースのセル数をカウントします。関数の末尾の”A”のアルファベットは、ALL(すべて)の頭文字からきています。

一方、DCOUNT関数は、条件に合う数値のセルの個数だけをカウントする関数です。

2つの関数の使い方は全く同じですが、カウントできる対象のセルが異なるので、使う際に意識しておきましょう。

カウントする対象セル

DCOUNTA関数 ⇒ 数値のセル、文字のセル、スペースのセル

DCOUNT関数 ⇒ 数値のセルのみ

カウントの対象が数値セルに限定されている場合は、以下の記事を参考にDCOUNT関数を利用してください。

エクセルのDCOUNTA関数(ディーカウントエー)の使い方

それでは、エクセルのDCOUNTA関数について紹介します。

読み方は、ディーカウントエーです。

「D」はデータベースの”D”で、「COUNT」は数えることを意味しています。さらに「A」は全てのセルを対象していることを表すALL(すべて)の頭文字です。

つまり、DCOUNTA関数は、「データベース上から条件(ORやAND)に合うセルの個数をカウントする関数」です。

この関数の使い方の一番の特徴は、条件表を作成する必要がある、ということです。

また、OR条件とは、「ある事象が成り立つ、もしくは、他の事象が成り立つための条件」、AND条件は、「ある事象が成り立ち、なおかつ、他の事象も成り立つための条件」、という意味です。

AN条件とOR条件をさらに詳しく知りたい方は、以下の記事を参考にしてください。

DCOUNTA関数の書式と引数

エクセルのDCOUNTA関数の書式(構文)と引数は、以下のとおりです。

=DCOUNTA(データベース, フィールド, 条件)

それぞれの引数の入力内容は、以下のとおりです。

第1引数データベース」:表全体を指定します。セルの数を求める列だけでなく、条件が含まれた列や見出しも選択します。(例:A2:D10)

第2引数フィールド」:セルの個数をカウントする列の見出しセルを指定します。(例:D2)

第3引数条件:OR条件やAND条件を入力した「条件表見出し含めて選択します。「条件表」の作成方法は下の見出しで紹介します。(例:E2:F4)

DCOUNTA関数の使い方

DCOUNT関数の引数がどのセル範囲を指定し、条件表はどのように指定しているか、下の図を参考にしてください。

下の例では、G3セルに「=DCOUNTA(B2:D9,D2,G7:G9)」と入力しています。

B列が「担当者A」もしくは「担当者B」で、D列に文字が入力されているセルの個数を数えています。

=DCOUNTA(B2:D9,B2,G7:G9)

図解.DCOUNTA関数の引数と指定セルの関係
図解.DCOUNTA関数の引数と指定セルの関係

D5セル、D6セル、D7セルにデータが入力されているので、セル数の結果は「3」と表示されます。

もし、シンプルにB列が「担当者A」もしくは「担当者B」のセルの個数を数える場合は、データベースとフィールドはともにB列を指定します。

=DCOUNTA(B2:B9,B2,G7:G9)

DCOUNTA関数でデータベースとセルの個数をカウントする列が同じ場合
DCOUNTA関数でデータベースとセルの個数をカウントする列が同じ場合

この関数の使い方の一番のポイントは、第3引数の「条件表」をどのように作成するか、ということです。

OR条件やAND条件の条件表をどのように作成するかは、以下の見出しで解説します。

DCOUNTA関数の条件表の作り方(OR条件とAND条件)

それでは、DCOUNTA関数の条件表の作り方を紹介します。

条件表は以下の2つのルールで作成する必要があります。

条件表の作り方

1.OR条件は、縦方向に条件を入力

2.AND条件は、横方向に条件を入力

【OR条件】

『担当者Bまたは担当者C』というように同じ列に複数条件を設定したり、『「算数60点より上」または「国語65点以上」』というように異なる列に条件を設定する場合は、下の図のように縦方向に作成します。

異なる列に条件を設定する場合でも、一つ下の行に条件を入力するところがポイントです。

DCOUNTA関数のOR条件の条件表の例
DCOUNTA関数のOR条件の条件表の例

【AND条件】

「AND条件」は、下の図のように作成することで、『300以上なおかつ600未満』という条件を作成することが出来ます。

条件は横方向に作成するのがポイントです。

DCOUNTA関数のAND条件の条件表の例
DCOUNTA関数のAND条件の条件表の例

【AND条件とOR条件の複合条件】

AND条件とOR条件を組み合わせた条件を設定することも出来ます。

以下の条件表を作成することで、「担当者AまたはB」かつ「200以上または450未満」という条件を設定できます。

DCOUNTA関数のAND条件とOR条件の複合条件表の例
DCOUNTA関数のAND条件とOR条件の複合条件表の例

DCOUNTA関数の事例1(OR条件・同じ列)

DCOUNTA関数を使った実例を5つ紹介していきます。

まずは、同じ列にOR条件を設定し、条件に合うセルの数を求める方法です。

下のDCOUNTA関数をG3セルに設定することで、『営業部もしくは製造部』のセルの個数を数えることが出来ます。

=DCOUNTA(B2:D9,D2,G7:G9)

DCOUNTA関数を使った事例1(OR条件&同じ列)
DCOUNTA関数を使った事例1(OR条件&同じ列)

データベースのセル範囲は、D列だけを選択しても大丈夫だよ。

DCOUNTA関数の事例2(OR条件・複数の列)

2つ目の事例は、OR条件を複数の異なる列に設定し、条件に合うセルの個数を求める方法です。

下のDCOUNTA関数をF3セルに設定することで、『算数が60点より上で、かつ国語が65点以上』の受験生のセルの個数を数えることが出来ます。

=DCOUNTA(B2:D9,B2,F7:G9)

DCOUNTA関数を使った事例2(OR条件&複数の列)
DCOUNTA関数を使った事例2(OR条件&複数の列)

DCOUNTA関数の事例3(AND条件・同じ列)

3つ目の事例は、AND条件を同じ列に設定し、条件に合うセルの個数を求める方法です。

下のDCOUNTA関数をG3セルに設定することで、『販売高が300以上でかつ600未満』の条件に合うセルの個数を算出することが出来ます。

=DCOUNTA(B2:D9,B2,G7:H8)

DCOUNTA関数を使った事例3(AND条件&同じ列)
DCOUNTA関数を使った事例3(AND条件&同じ列)

この例のように、AND条件で複数条件で設定する場合は、DCOUNTA関数ではなく、COUNTIFS関数でも対応出来ます。

下の関数を挿入すれば、同じようにAND条件で対象のセルの個数を求めることができます。

この場合は、DCOUNTA関数用の『条件表』を作成する必要はありません。

=COUNTIFS(D3:D9,">=300",D3:D9,"<600")

COUNTIFS関数でAND条件でセルの個数を算出
COUNTIFS関数でAND条件でセルの個数を算出

COUNTIFS関数の使い方は以下の記事を参照してください。

DCOUNTA関数の事例4(AND条件・複数の列)

4つ目の事例は、AND条件を複数の異なる列に設定し、条件に合うセルの個数を求める方法です。

下のDCOUNTA関数をG3セルに設定することで、『担当者Bで、かつ300以上でかつ600未満』のセルの個数を算出することが出来ます。

=DCOUNTA(B2:D9,B2,G7:I8)

DCOUNTA関数を使った事例4(AND条件&複数の列)
DCOUNTA関数を使った事例4(AND条件&複数の列)

こちらも同様に、複数のAND条件でセルの数を求める場合は、DCOUNT関数ではなく、COUNTIFS関数でも対応出来ます。

下の関数を挿入すれば、同じようにAND条件でセルの個数を求めることができます。

この場合ももちろん、DCOUNT関数用の『条件表』をCOUNTIFS関数に利用する必要はありません。

=COUNTIFS(B3:B9,"担当者B",D3:D9,"<600",D3:D9,">=300")

COUNTIFS関数で複数のAND条件でセルの個数を算出
COUNTIFS関数で複数のAND条件でセルの個数を算出

DCOUNTA関数の事例5(複合条件)

5つ目の事例は、AND条件とOR条件を組み合わせた複合条件で設定して、条件に合うセルの個数を求める方法です。

下のDCOUNTA関数をG3セルに設定することで、「担当者AまたはB」かつ「200以上または450未満」という条件でセルの数をカウントすることが出来ます。

=DCOUNTA(B2:D9,B2,G7:H9)

DCOUNTA関数を使った事例5(AND条件とOR条件を組み合わせる)
DCOUNTA関数を使った事例5(AND条件とOR条件を組み合わせる)