Excel。条件を満たすレコードの数値の個数を算出するのが、DCOUNT関数です。
<関数辞典:DCOUNT関数>
DCOUNT関数
読み方: ディーカウント
分類: データベース
DCOUNT(データベース,フィールド,条件)
条件を満たすレコードの数値の個数を算出します
【Excel・Word・PowerPoint・Access】あなたの「困った」を解決!10年以上の経験が詰まった、現場の疑問から生まれた実践テクニック集。作業効率を劇的に上げるOffice活用術をお届けします。
DCOUNT関数
読み方: ディーカウント
分類: データベース
DCOUNT(データベース,フィールド,条件)
条件を満たすレコードの数値の個数を算出します
数値の件数を算出するにはCOUNT関数をつかいますし、条件をつけて数値の件数を算出するならば、COUNTIF関数やCOUNTIFS関数をつかいます。
ただ、条件が複雑になってきた時には、DCOUNT関数をつかうと効率もよく、条件も視認しやすくなるわけです。
ただ、DCOUNT関数は別表を用意する必要があるので、作り方を確認しておきましょう。
今回は、売上高が1000以上のデータが何件あるのかを、H5には、条件に合致する件数を算出します。
なお、条件の列ですが、H1の見出し名は、表の見出しを同じにする必要があります。
要するに「売上」では、合致しないので、算出してくれません。
H5には、次の数式を設定してあります。
=DCOUNT(A1:F11,E1,H1:H2)
では、引数を確認しておきましょう。
最初の引数は、データベース。「A1:F11」を範囲選択します。
2つ目の引数は、フィールドです。売上高が1000以上の件数を算出したい、つまり対象は「売上高」なので、フィールド名の「売上高」がある「E1」を設定します。
3つ目の引数は、条件です。条件を用意した、「H1:H2」を設定します。
これで、条件に合致する件数を算出することができます。
複数条件での件数を算出するには、COUNTIFS関数をつかうことで、算出することができますが、複数条件にもルールがあります。
=COUNTIFS(A2:A9,"新宿",A2:A9,"渋谷")
何をやりたいのかというと、A列の店舗名に、新宿と渋谷が何件あるのかを算出したいわけです。
そこで、複数条件で件数を算出したいので、COUNTIFS関数をつかってみたところ、算出結果は「0」。
COUNTIFS関数は、複数条件で検索することはできるのですが、複数列での対応で、一つの列内で複数条件には、対応していないわけです。
要するに、店舗名が「新宿」でかつ、来店客数が「300以上」のような、AND条件には対応していますが、店舗名が「新宿」または「渋谷」といったOR条件には対応していません。
そこで、COUNTIF関数を複数つかい、それぞれの算出結果を加算させる
=COUNTIF(A2:A9,"新宿")+COUNTIF(A2:A9,"渋谷")
という方法で対応することもあります。
ただ、この方法だと、OR条件が多くなった場合は、数式自体の可読性も悪化し、数式のミスを誘発する可能性が高くなります。
何よりも、手早く算出することができません。
そこで、DCOUNT関数をつかうことで、素早く算出することができます。
ただし、DCOUNT関数は、条件のフィールドを用意する必要があります。
E1:E3が条件です。
=DCOUNTA(A1:C9,A1,E1:E3)
これで、算出することができました。
DCOUNTA関数の引数を確認しておきます。
DCOUNTA(データベース,フィールド,条件)
データベースは、リストのことです。
「A1:C9」で、見出し行も含む必要があります。
フィールドは、次の条件が含まれている、見出し名です。
今回は、店舗名が対象なので「A1」。
条件は、先程設定した、条件の範囲である、E1:E3を設定します。
ここも見出しが必要になりますので、忘れずに範囲に含めます。
条件が増えたとしても、E3の下に追加するだけで、手早く算出することができます。
オートフィルターとかテーブルにすれば、算出する方法もありますが、ほぼ数式だけで算出することができます。
条件が複雑になった場合や、OR条件になった場合には、DCOUNTA関数など「D」がついたデータベース関数をつかってみると、いいかもしれませんね。