Excel(エクセル)で単一条件や複数条件に合う数値が入力されたセルの個数を求めるときはCOUNTIF関数や、COUNTIFS関数を用います。
しかし、これらの関数はAND条件(なおかつ)でしか利用できません。
複数の条件で、OR条件(もしくは)でセルの数をカウントする時は、DCOUNT関数(ディー・カウント)を利用します。
さらに、DCOUNT関数は、OR条件でもAND条件でも、それらを組み合わせた複合条件でもセルの数を複数条件で求めることが出来る関数です。
今回の記事では、DCOUNT関数を使った複数条件でセル数をカウントする方法に関する以下の内容を紹介します。
本記事で紹介する内容
・OR条件やAND条件とは?
・DCOUNT関数の構文と引数
・DCOUNT関数を使った実例(OR条件を単一の列で設定)
・DCOUNT関数を使った実例(OR条件を複数の列で設定)
・DCOUNT関数を使った実例(AND条件を単一の列で設定)
・DCOUNT関数を使った実例(AND条件を複数の列で設定)
・DCOUNT関数を使った実例(OR条件とAND条件を混ぜて設定)
エクセルのOR条件とAND条件を理解しよう
まずは、OR条件とAND条件が何かを確認しておきましょう。
まずは、OR条件について説明します。
OR条件は、「ある事象が成り立つ、もしくは、他の事象が成り立つための条件」、という意味です。
ORを「または」、「もしくは」と読み替えると理解しやすくなります。
下の例でいうと、円A(条件A)と円B(条件B)の範囲すべてが「Aの条件が成り立つか、またはBの条件が成り立つ」、つまり「AまたはB」のOR条件の範囲です。
OR条件の具体例を一つ紹介します。
下の表から、「算数80点以上、もしくは国語80点以上」というOR条件に該当する行は、赤枠の行となります。
一方、AND条件は、「ある事象が成り立つと共に、他の事象も成り立つための条件」、という意味です。
ANDを「かつ」、「なおかつ」と読み替えると理解しやすくなります。
下の例でいうと、円A(条件A)と円B(条件B)が重なる範囲(青色の部分)が「Aの条件が成り立つ、かつBの条件が成り立つ」、つまり「AかつB」のAND条件の範囲です。
AND条件の具体例を一つ紹介します。
下の表から、「算数60点以上、かつ国語60点以上」というAND条件に該当する行は、赤枠の行となります。
エクセルのDCOUNT関数(ディーカウント)の使い方
それでは、エクセルのDCOUNT関数について紹介します。
読み方は、ディーカウントです。
「D」はデータベースのDを表していて、「COUNT」は数を数えることを意味しています。
つまり、DCOUNT関数は、「データベース上から条件(ORやAND)に合う数値の入ったセルの個数をカウントする関数」です。
この関数の使い方の一番の特徴は、条件表を作成する必要がある、ということです。
DCOUNT関数の書式と引数
エクセルのDCOUNT関数の書式(構文)と引数は、以下のとおりです。
=DCOUNT(データベース, フィールド, 条件)
それぞれの引数の入力内容は、以下のとおりです。
第1引数「データベース」:表全体を指定します。セルの数を求める列だけでなく、条件が含まれた列や見出しも選択します。(例:A2:D10)
第2引数「フィールド」:セルの個数をカウントする列の見出しセルを指定します。(例:D2)
第3引数「条件」:OR条件やAND条件を入力した「条件表」を見出し含めて選択します。「条件表」の作成方法は下の見出しで紹介します。(例:E2:F4)
DCOUNT関数の使い方
DCOUNT関数の引数がどのセル範囲を指定し、条件表はどのように指定しているか、下の図を参考にしてください。
下の例では、「担当者A」と「担当者B」のセルの個数を数えています。
G3セルに「=DCOUNT(B2:D9,D2,G7:G9)」と入力しています。
そうすると、表の中から、「担当者Aもしくは担当者B」というOR条件で数値の入ったセルの数をカウントすることができます。
DCOUNT関数は、数値が入力されたセルの数を数える関数なので、引数「フィールド」はD7セル「販売高」を指定します。
この関数の使い方の一番のポイントは、第3引数の「条件表」をどのように作成するか、ということです。
OR条件やAND条件の条件表をどのように作成するかは、以下の見出しで解説します。
DCOUNT関数の条件表の作り方
それでは、DCOUNT関数の条件表の作り方を紹介します。
条件表は以下の2つのルールで作成する必要があります。
条件表の作り方
1.OR条件は、縦方向に条件を入力
2.AND条件は、横方向に条件を入力
【OR条件】
『担当者BまたはC』というように同じ列に複数条件を設定したり、『「算数60点より上」または「国語65点以上」』というように異なる列に条件を設定する場合は、下の図のように縦方向に作成します。
異なる列に条件を設定する場合でも、一つ下の行に条件を入力するところがポイントです。
【AND条件】
「AND条件」は、下の図のように作成することで、『300以上なおかつ600未満』という条件を作成することが出来ます。
条件は横方向に作成するのがポイントです。
【AND条件とOR条件の複合条件】
AND条件とOR条件を組み合わせた条件を設定することも出来ます。
以下の条件表を作成することで、「担当者AまたはB」かつ「200以上または450未満」という条件を設定できます。
DCOUNT関数の実例1(OR条件・同じ列)
DCOUNT関数を使った実例を5つ紹介していきます。
まずは、OR条件を同じ列に設定し、条件に合うセルの数を求める方法です。
下のDCOUNT関数をG3セルに設定することで、『担当者Bもしくは担当者C』のセルの個数を数えることが出来ます。
=DCOUNT(B2:D9,D2,G7:G9)
繰り返しだけど、DCOUNT関数は数値の入ったセルしか数えれないから注意してね。
DCOUNT関数の実例2(OR条件・複数の列)
実例2は、OR条件を複数の異なる列に設定し、条件に合うセルの個数を求める方法です。
下のDCOUNT関数をG3セルに設定することで、『算数が60点より上で、かつ国語が65点以上』のセルの個数を数えることが出来ます。
=DCOUNT(B2:D9,D2,F7:G9)
DCOUNT関数の実例3(AND条件・同じ列)
実例3は、AND条件を同じ列に設定し、条件に合うセルの個数を求める方法です。
下のDCOUNT関数をG3セルに設定することで、『販売高が300以上でかつ600未満』の条件に合うセルの個数を算出することが出来ます。
=DCOUNT(B2:D9,D2,G7:H8)
この例のように、AND条件で複数条件で設定する場合は、DCOUNT関数ではなく、COUNTIFS関数でも対応出来ます。
下の関数を挿入すれば、同じようにAND条件で対象のセルの個数を求めることができます。
この場合は、DCOUNT関数用の『条件表』を作成する必要はありません。
=COUNTIFS(D3:D9,">=300",D3:D9,"<600")
DCOUNT関数の実例4(AND条件・複数の列)
実例4は、AND条件を複数の異なる列に設定し、条件に合うセルの個数を求める方法です。
下のDCOUNT関数をG3セルに設定することで、『担当者Bで、かつ300以上でかつ600未満』のセルの個数を算出することが出来ます。
=DCOUNT(B2:D9,D2,G7:I8)
こちらも同様に、複数のAND条件でセルの数を求める場合は、DCOUNT関数ではなく、COUNTIFS関数でも対応出来ます。
下の関数を挿入すれば、同じようにAND条件でセルの個数を求めることができます。
この場合ももちろん、DCOUNT関数用の『条件表』をCOUNTIFS関数に利用する必要はありません。
=COUNTIFS(B3:B9,"担当者B",D3:D9,"<600",D3:D9,">=300")
DCOUNT関数の実例5(OR条件とAND条件)
実例5は、AND条件とOR条件を組み合わせた複合条件で設定して、条件に合うセルの個数を求める方法です。
下のDCOUNT関数をG3セルに設定することで、「担当者AまたはB」かつ「200以上または450未満」という条件でセルの数をカウントすることが出来ます。
=DCOUNT(B2:D9,D2,G7:H9)
OR条件はCOUNTIF関数を複数利用することでも可能
OR条件でセルの数を数えるには、COUNTIF関数を複数利用することでも対応が可能です。
COUNTIF関数(カウント・イフ)は、指定した文字(数値含む)や条件に一致するセルの数をカウント出来る関数です。
COUNTIF関数は1つの条件しか設定できませんが、DCOUNT関数とは異なり、文字のセルもカウントすることが出来ます。
そのため、B列が「担当者Bもしくは担当者C」のセルの数をカウントしたい場合、以下の数式で結果を求めることができます。
=COUNTIF(B2:B9,"担当者B")+COUNTIF(B2:B9,"担当者C")
COUNTIFS関数(カウント・イフス)は単一条件でセルの個数もカウントできるので、COUNTIFS関数を2つ使った以下の数式を挿入することで、同じ結果が得られます。
=COUNTIFS(B2:B9,"担当者B")+COUNTIFS(B2:B9,"担当者C")
DCOUNTA関数は文字のセルの個数もカウントできる
DCOUNT関数は数値の入ったセルの個数をカウントすることは出来ますが、文字が挿入されたセルの個数はカウントできません。
一方、DCOUNTA関数(ディーカウントエー)は、数値だけでなく文字が挿入されたセルの個数をカウントすることができます。
DCOUNTA関数も、DCOUNT関数と引数が一緒で、使い方は全く同じです。
=DCOUNTA(データベース, フィールド, 条件)
下の例のように、G3セルに「=DCOUNTA(B2:B9,B2,G7:G9)」と入力することで、「担当者Bもしくは担当者C」のセルの個数を数えることができます。
セルの個数をカウントに関連する記事を紹介
「セルの個数のカウント」に関連するリンク記事を紹介します。
セルの個数を求める方法について、DCOUNT関数と合わせて参考にしてください。
COUNTIF関数で単一条件に合うセルの個数を数える
Excel(エクセル)のCOUNTIF関数(カウント・イフ)は、1つの検索条件に一致するセルの数をカウントする関数です。
この『検索条件』は指定した単語に一致するものを数えるだけでなく、『〇〇以上』や『〇〇以下』、『○○より上』、『〇〇未満』という条件を指定することも可能です。
以下の記事では、COUNTIF関数の『以上』『以下』『より上』『未満』の使い方を紹介しています。
COUNTIFS関数で複数条件に合うセルの個数を数える
COUNTIFS関数(カウント・イフス)は、複数の検索条件に一致するセルの数をカウントする関数です。
以下の記事では、COUNTIFS関数の『〇〇以上かつ▲▲未満』『〇〇以上かつ▲▲以下』のセル数をカウントする方法を紹介しています。
COUNTA関数を使って自動で表にナンバリングする
COUNTA関数は、空白以外のセルの個数を数える関数になります。数値も文字列もすべてをカウントします。
この関数を用いることで、表の空白セルや空白行は番号を付与しないナンバリングが可能です。