以前にもこの連載で触れたCOUNTIFS関数は、複数の条件に合致する値の個数を返す。例えば、名簿から「20歳以上40歳未満」の値の個数などを得る場合、COUNTIFS関数は大活躍してくれる。

COUNTIFS関数 統計関数

=COUNTIFS(条件範囲1、条件1、条件範囲2、条件2、…)

 検索条件に一致する値の個数を返す。

①条件範囲 計算対象にする範囲を指定する。
②条件 数値や文字列、数式を指定する。文字列や数式は「"(ダブルクォーテーション)」で囲むこと。以下、①と②を繰り返して、複数条件を設定する。

「OR(または)」の条件を設定する

 ただし、COUNTIFS関数で設定する複数条件は「AND(かつ)」になっている点に注意しよう。「20歳以上40歳未満」の場合、「20歳以上」かつ「40歳未満」という2つの条件を満たした値に限り、カウントの対象になる。

 となると、「AND(かつ)」ではなく、「OR(または)」も条件として設定したくなる。例えば、「20歳未満」または「40歳以上」の人数を計算するケースを考えてみよう。この場合、COUNTIFS関数でそれぞれの人数を計算して、両者の合計を求めることになる。

 下図を見てもらいたい。B11では「=COUNTIFS(D2:D9,"<20")」、B12では「=COUNTIFS(D2:D9,">=40")」とし、その合計をB13に求めた。なお、B11とB12に用いたCOUNTIFS関数は、数式に入る条件が1つであるため、COUNTIF関数を使っても対応できる。

B11に「20歳未満」の人数、B12に「40歳以上」の人数をそれぞれ算出した。B13では両者の人数を合計した。結果は「5」人となった
[画像のクリックで拡大表示]

 計算結果から、「20歳未満」または「40歳以上」の人数は、「5」人であることが分かった。しかし、「20歳未満」または「40歳以上」などの条件はあまりお目にかからないかもしれない。例えば、「30歳以上」または「男」などといった条件ならばよく目にしそうだ。そこでいま見た同じ方法で「30歳以上」または「男」の人数を算出してみよう。

先の事例のシートを用いて、「30歳以上」または「男」の人数を算出した。結果は「9」人となったが、これは適切なのか
[画像のクリックで拡大表示]

 結果は「9」人と出た。しかし、これは適切な答えなのだろうか。表をよく見ると、「30歳以上」の人は確かに4人いる。一方、「男」の数も5人で合っている。しかし、「川辺淳」さんや「篠崎剛志」さんは、「30歳以上」でかつ「男」だ。つまり現状の計算では、2つの条件がともに一致する人は、重複してカウントされていることになる。したがって、結果として出た「9」人からこの重複部分を差し引く必要がある。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。