Excel。同じ列内での複数条件をつかって手早く件数を算出したい
<DCOUNT関数>
複数条件での件数を算出するには、COUNTIFS関数をつかうことで、算出することができますが、複数条件にもルールがあります。
E7には、次の数式を設定しています。
=COUNTIFS(A2:A9,"新宿",A2:A9,"渋谷")
何をやりたいのかというと、A列の店舗名に、新宿と渋谷が何件あるのかを算出したいわけです。
そこで、複数条件で件数を算出したいので、COUNTIFS関数をつかってみたところ、算出結果は「0」。
COUNTIFS関数は、複数条件で検索することはできるのですが、複数列での対応で、一つの列内で複数条件には、対応していないわけです。
要するに、店舗名が「新宿」でかつ、来店客数が「300以上」のような、AND条件には対応していますが、店舗名が「新宿」または「渋谷」といったOR条件には対応していません。
そこで、COUNTIF関数を複数つかい、それぞれの算出結果を加算させる
=COUNTIF(A2:A9,"新宿")+COUNTIF(A2:A9,"渋谷")
という方法で対応することもあります。
ただ、この方法だと、OR条件が多くなった場合は、数式自体の可読性も悪化し、数式のミスを誘発する可能性が高くなります。
何よりも、手早く算出することができません。
そこで、DCOUNT関数をつかうことで、素早く算出することができます。
ただし、DCOUNT関数は、条件のフィールドを用意する必要があります。
E1:E3が条件です。
E7に、DCOUNT関数をつかった数式を設定します。
=DCOUNTA(A1:C9,A1,E1:E3)
これで、算出することができました。
DCOUNTA関数の引数を確認しておきます。
DCOUNTA(データベース,フィールド,条件)
データベースは、リストのことです。
「A1:C9」で、見出し行も含む必要があります。
フィールドは、次の条件が含まれている、見出し名です。
今回は、店舗名が対象なので「A1」。
条件は、先程設定した、条件の範囲である、E1:E3を設定します。
ここも見出しが必要になりますので、忘れずに範囲に含めます。
条件が増えたとしても、E3の下に追加するだけで、手早く算出することができます。
オートフィルターとかテーブルにすれば、算出する方法もありますが、ほぼ数式だけで算出することができます。
条件が複雑になった場合や、OR条件になった場合には、DCOUNTA関数など「D」がついたデータベース関数をつかってみると、いいかもしれませんね。