6/29/2022

Excel。同じ列内での複数条件をつかって手早く件数を算出したい【Multiple conditions】

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」がついたデータベース関数をつかってみると、いいかもしれませんね。