countifで複数条件 (mm0824)
CountIf の基本からCountIf で複数条件の場合の使い方を解説します
(1) countifの基本
- 下↓のような表のA列に[リンゴ]がいくつ存在するかを求める例
-
A B C D
┌──────────────────
1│ 商品 │ │ 商品 │ 個数
2│ リンゴ │ │ リンゴ │ 3 ← これを求める
3│ オレンジ│ │ │
4│ リンゴ │ │ │
5│ リンゴ │ │ │
-
この場合関数式は =countif(A2:A5,"リンゴ") で求まります
-
式の意味:セルA2からA5の範囲が[リンゴ]のものの数を数える
-
もちろん =countif(A2:A5,"りんご") や
=countif(A2:A5,"apples") では求まりません
(Excel_HELPが間違っている)
-
少し汎用性をもたせて(下へコピーしてうまく計算できるように) =countif($A$2:$A$5,C2) とする場合が多いです
-
また =sumproduct((A2:A5=C2)*1) でも求まります
-
式の意味:
セルA2は[リンゴ]なので1 1*1
セルA3は[オレンジ]なので0 0*1
セルA4は[リンゴ]なので1 1*1
セルA5は[リンゴ]なので1 1*1
従って1*1 + 0*1 + 1*1 + 1*1 --> 1 + 0 + 1 + 1 --> 3 となります。
(2) countifで複数条件
-
下↓のような表のA列が[リンゴ]でB列が[中]のものがいくつ存在するかを求める例
-
A B C D E F
┌─────────────────────────
1│ 商品 │大きさ│ │ 商品 │大きさ│個数
2│ リンゴ │ 大 │ │ リンゴ │ 中 │ 1 ← これを求める
3│ オレンジ│ 中 │ │ │ │
4│ リンゴ │ 中 │ │ │ │
5│ リンゴ │ 大 │ │ │ │
-
このような場合countifでは求められないので
-
=sumproduct((A2:A5="リンゴ")*(B2:B5="中")) 又は
-
=sumproduct((A2:A5=D2)*(B2:B5=E2)) で求まります
-
式の意味:
セルA2は[リンゴ]なので1 かつ セルB2は[大]なので0 1*0
セルA3は[オレンジ]なので0 かつ セルB3は[中]なので1 0*1
セルA4は[リンゴ]なので1 かつ セルB4は[中]なので1 1*1
セルA5は[リンゴ]なので1 かつ セルB5は[大]なので0 1*0
従って1*0 + 0*1 + 1*1 + 1*0 --> 0 + 0 + 1 + 0 --> 1 となります。
-
少し汎用性をもたせて =sumproduct(($A$2:$A$5=D2)*($B$2:$B$5=E2)) とする
場合が多いです
【sumproduct以外の方法】
-
(a)連結を使う:C列に =A2&B2 でA列とB列を連結して =countif(C2:C5,D2&E2) のような方法も可能です
-
(b)配列数式を使う: =sum(if(($A$2:$A$5=D2)*($B$2:$B$5=E2),1)) 数式を入力してCtrl+Shift+Enter
-
(c)データベース関数dcountaを使う: =dcounta(A1:B5,1,D1:E2)
(3) sumproduct
(4) A列やB列が数値データで条件をつける場合
- =sumproduct((A2:A5>500)*(B2:B5<=100))
- A列が500より大で かつ B列が100以下 の個数
関連ページ
キーワード
- COUNTIF
- SUMPRODUCT
- 複数条件
- カウント
2022/01/16:更新 2004/08/24:登録 訪問者: