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)
D5セル、D6セル、D7セルにデータが入力されているので、セル数の結果は「3」と表示されます。
もし、シンプルにB列が「担当者A」もしくは「担当者B」のセルの個数を数える場合は、データベースとフィールドはともにB列を指定します。
=DCOUNTA(B2:B9,B2,G7:G9)
この関数の使い方の一番のポイントは、第3引数の「条件表」をどのように作成するか、ということです。
OR条件やAND条件の条件表をどのように作成するかは、以下の見出しで解説します。
DCOUNTA関数の条件表の作り方(OR条件とAND条件)
それでは、DCOUNTA関数の条件表の作り方を紹介します。
条件表は以下の2つのルールで作成する必要があります。
条件表の作り方
1.OR条件は、縦方向に条件を入力
2.AND条件は、横方向に条件を入力
【OR条件】
『担当者Bまたは担当者C』というように同じ列に複数条件を設定したり、『「算数60点より上」または「国語65点以上」』というように異なる列に条件を設定する場合は、下の図のように縦方向に作成します。
異なる列に条件を設定する場合でも、一つ下の行に条件を入力するところがポイントです。
【AND条件】
「AND条件」は、下の図のように作成することで、『300以上なおかつ600未満』という条件を作成することが出来ます。
条件は横方向に作成するのがポイントです。
【AND条件とOR条件の複合条件】
AND条件とOR条件を組み合わせた条件を設定することも出来ます。
以下の条件表を作成することで、「担当者AまたはB」かつ「200以上または450未満」という条件を設定できます。
DCOUNTA関数の事例1(OR条件・同じ列)
DCOUNTA関数を使った実例を5つ紹介していきます。
まずは、同じ列にOR条件を設定し、条件に合うセルの数を求める方法です。
下のDCOUNTA関数をG3セルに設定することで、『営業部もしくは製造部』のセルの個数を数えることが出来ます。
=DCOUNTA(B2:D9,D2,G7:G9)
データベースのセル範囲は、D列だけを選択しても大丈夫だよ。
DCOUNTA関数の事例2(OR条件・複数の列)
2つ目の事例は、OR条件を複数の異なる列に設定し、条件に合うセルの個数を求める方法です。
下のDCOUNTA関数をF3セルに設定することで、『算数が60点より上で、かつ国語が65点以上』の受験生のセルの個数を数えることが出来ます。
=DCOUNTA(B2:D9,B2,F7:G9)
DCOUNTA関数の事例3(AND条件・同じ列)
3つ目の事例は、AND条件を同じ列に設定し、条件に合うセルの個数を求める方法です。
下のDCOUNTA関数をG3セルに設定することで、『販売高が300以上でかつ600未満』の条件に合うセルの個数を算出することが出来ます。
=DCOUNTA(B2:D9,B2,G7:H8)
この例のように、AND条件で複数条件で設定する場合は、DCOUNTA関数ではなく、COUNTIFS関数でも対応出来ます。
下の関数を挿入すれば、同じようにAND条件で対象のセルの個数を求めることができます。
この場合は、DCOUNTA関数用の『条件表』を作成する必要はありません。
=COUNTIFS(D3:D9,">=300",D3:D9,"<600")
COUNTIFS関数の使い方は以下の記事を参照してください。
DCOUNTA関数の事例4(AND条件・複数の列)
4つ目の事例は、AND条件を複数の異なる列に設定し、条件に合うセルの個数を求める方法です。
下のDCOUNTA関数をG3セルに設定することで、『担当者Bで、かつ300以上でかつ600未満』のセルの個数を算出することが出来ます。
=DCOUNTA(B2:D9,B2,G7:I8)
こちらも同様に、複数のAND条件でセルの数を求める場合は、DCOUNT関数ではなく、COUNTIFS関数でも対応出来ます。
下の関数を挿入すれば、同じようにAND条件でセルの個数を求めることができます。
この場合ももちろん、DCOUNT関数用の『条件表』をCOUNTIFS関数に利用する必要はありません。
=COUNTIFS(B3:B9,"担当者B",D3:D9,"<600",D3:D9,">=300")
DCOUNTA関数の事例5(複合条件)
5つ目の事例は、AND条件とOR条件を組み合わせた複合条件で設定して、条件に合うセルの個数を求める方法です。
下のDCOUNTA関数をG3セルに設定することで、「担当者AまたはB」かつ「200以上または450未満」という条件でセルの数をカウントすることが出来ます。
=DCOUNTA(B2:D9,B2,G7:H9)