- 
Home » 
 
- 
エクセル関数一覧表 » 
 
- 
Excel関数の目次 » 
 
- 条件に一致するデータを数える関数の使い方(COUNTIFS関数,COUNTIF関数) 
 
更新:2025/1/21;作成:2004/4/7
- 一応、条件の数によって2つの関数を使い分けるようになっているイメージですが、COUNTIFS関数だけで1つの条件でもカウントができます。
複数条件の場合はCOUNTIFS関数・・・といった書き方をしていますが、実は1つの条件でもCOUNTIFS関数を使った方が余計なことを考えなくてよろしいと思います。COUNTIF関数は忘れてOKです。
他の S付きの関数も同じです。AVERAGEIFS,SUMIFS,IFSなどです。
MAXIFSやMINIFS関数はExcel2019で追加されましたが、MAXIFとMINIFといったものは存在していません。 - Excel2007でCOUNTIFS関数が追加されたのですが、従来のCOUNTIF関数を無視することができないので併記する形態でページを作成していました。
 - 現在は2021年も終わろうとする時期で15年も時を経ていますので、ページの構成を変更します。
説明の順序をCOUNTIFS関数をCOUNTIF関数の前にします。(記 2021/12/14)  - このページで使用するデータです。コピーしてお使いください。
  
 | 
B | 
C | 
D | 
E | 
F | 
G | 
  
| 2 | 
連番 | 
氏名 | 
性別 | 
年齢 | 
出身地 | 
血液型 | 
  
| 3 | 
1 | 
上原嘉男 | 
男 | 
44 | 
福岡県 | 
O | 
  
| 4 | 
2 | 
森永彩芽 | 
女 | 
58 | 
長崎県 | 
A | 
  
| 5 | 
3 | 
古田恵 | 
女 | 
41 | 
大分県 | 
AB | 
  
| 6 | 
4 | 
太田千恵子 | 
女 | 
34 | 
宮崎県 | 
B | 
  
| 7 | 
5 | 
豊田啓一 | 
男 | 
38 | 
鹿児島県 | 
O | 
  
| 8 | 
6 | 
新村遥奈 | 
女 | 
29 | 
福岡県 | 
A | 
  
| 9 | 
7 | 
坂元彩香 | 
女 | 
38 | 
長崎県 | 
AB | 
  
| 10 | 
8 | 
坪井尚生 | 
男 | 
45 | 
大分県 | 
A | 
  
| 11 | 
9 | 
西原舞 | 
女 | 
47 | 
宮崎県 | 
B | 
  
| 12 | 
10 | 
中野野乃花 | 
女 | 
51 | 
鹿児島県 | 
O | 
  
| 13 | 
11 | 
岩渕佳代 | 
女 | 
44 | 
福岡県 | 
A | 
  
| 14 | 
12 | 
市村将文 | 
男 | 
58 | 
長崎県 | 
AB | 
  
| 15 | 
13 | 
芦田公平 | 
男 | 
59 | 
大分県 | 
A | 
  
| 16 | 
14 | 
高見美姫 | 
女 | 
34 | 
宮崎県 | 
AB | 
  
| 17 | 
15 | 
高山晴彦 | 
男 | 
65 | 
鹿児島県 | 
B | 
  
| 18 | 
16 | 
高島嘉子 | 
女 | 
53 | 
福岡県 | 
A | 
  
| 19 | 
17 | 
蛭田功一 | 
男 | 
46 | 
長崎県 | 
O | 
  
| 20 | 
18 | 
北奈那 | 
女 | 
42 | 
大分県 | 
B | 
  
| 21 | 
19 | 
本田明莉 | 
女 | 
62 | 
宮崎県 | 
A | 
  
| 22 | 
20 | 
東海林真依 | 
女 | 
63 | 
鹿児島県 | 
AB | 
 
COUNTIFS関数:複数の検索条件に一致するデータの個数を返します。 Topへ
カウント イフズ
COUNTIFS(検索条件範囲1,検索条件1,検索条件範囲2,検索条件2...)
  Excel2007で追加された関数です。
条件は「条件1AND条件2...」のANDでの結果になります。 
  - COUNTIFS関数は複数の条件でデータの個数を数えることができます。
  単一条件でデータの個数を数えるCOUNTIF関数と同様の計算もCOUNTIFS関数で求めることができます。 
  
   - 【問題1】上記の名簿の男と女の血液型別の人数をJ3:M4セルに計算しなさい。
  
 
PIVOTBY関数が利用できる場合(Excel for Microsoft365)
  - 問題を書いて、以下に解答例を長々と書いていますが、Excel for Microsoft365で使用できるようになったPivotBy関数で一発で計算できるようになりました。
  
 - I2セルに =PIVOTBY(D3:D22,G3:G22,E3:E22,COUNT) と入力するだけです。
  この数式ではE3:E22セルをCOUNTしていますが、C3:C22セルをCOUNTAで計算することができます。
  PIVOTBY関数の使い方は PIVOTBY関数でクロス集計表を作るをご覧ください。
  
 
スピルが利用できる場合(Excel for Microsoft365 、Excel2021,Excel2024など)
  - Excel for Microsoft365、Excel2021,Excel2024などスピル(Spill)の機能が利用できる場合は、
  J3セルに =COUNTIFS(D3:D22,I3:I4,G3:G22,J2:M2) と入力するだけで計算ができます。 
  
   - Spillエラー(#スピル!)が出る場合は セル範囲J3:M4の 数式を入力するJ3セル以外は空欄にしておく必要があります。
  
  
 
Spillが利用できない場合(Excel2016以前)にCOUNTIFS関数で数式を作成する
  
    - 男のA型を求める場合は =COUNTIFS($D$3:$D$22,$I3,$G$3:$G$22,J$2) とします。
  この数式を右方向、下方向へコピーする必要があるため、引数は絶対参照などややこしくなります。
  
 
数式オートコンプリートを使って数式(関数)を入力する手順
  
    - 数式を入力するセル J3を選択します。
    数式バーに =cou と入力すると、リストに COUNTIFS が表示されるので、[↓]キーを4回押してCOUNTIFS を選択して、[Tab]キーを押します。[Enter]キーではありません。
  
 - =COUNTIFS( と表示されます。
  D3セルをマウスでクリックして選択し、[Shift]+[Ctrl]+[↓]キーを押して D3:D22を選択し、[F4]キーを押して$D$3:$D$22と絶対参照とします。
  [,]キーを入力します、
  
 - I3 と入力して、[F4]キーを3回押して $I3 と複合参照にします。男と女はI列にあるので、列番号を固定します
  
 - G3セルをマウスでクリックして選択して、[Shift]+[Ctrl]+[↓]キーを押して G3:G22を選択し、[F4]キーを押して$G$3:$G$22と絶対参照とします。
  [,]キーを入力します、
  J2と入力して、[F4]キーを2回押して、J$2 と複合参照とします。血液型は 2行目を参照するので 行番号を固定します
  ) を入力します。
  数式は =COUNTIFS($D$3:$D$22,$I3,$G$3:$G$22,J$2) となります。
  [Ctrl]+[Enter] で数式の入力を確定します。
  
 -  [Ctrl]+[Enter] で数式の入力を確定すると、アクティブセルはJ3セルのままです。
  [Shift]+[→]キーでJ3:M3セルを選択し、さらに[Shift]+[↓]キーでJ3:M3セルを選択します。
  
 - [F2]キーを押して、J3セルを編集状態にして、[Ctrl]+[Enter]で選択しているセル範囲に数式を一気に入力します。
  
  
    - 
    
オートフィルで数式をコピーする場合
     - [Ctrl]+[Enter] で数式の入力を確定すると、アクティブセルはJ3セルのままですので、すぐにフィルハンドルをドラッグする操作ができます。
  [Enter]キーで確定すると、アクティブセルがJ4セルに移動するので、[↑]キーを押してJ3セルをアクティブにする操作が余計になります。
    
 - 下図のように、J3セルに数式を入力したら、フィルハンドルを右方向へドラッグして、M3セルまで数式をコピーします。
さらに、J3:M3セルを選択している状態で、フィルハンドルを下方向へドラッグして、J4:M4セルに数式をコピーします。
    
 - これが、従来の計算式の入力方法になります。
    
 
 
- 【問題2】上記の名簿で30歳代の女性の数をカウントしなさい。 
 - 問題2の解答例 30歳代を30以上かつ40未満 と考えると、

  =COUNTIFS(E3:E22,">=30",E3:E22,"<40",D3:D22,"女") で求めることができます。
  
 
検索条件に合うセルを数える。     topへ
 カウントイフ
=COUNTIF(範囲,検索条件)
   検索条件に文字や式を使う時には「"」(半角の二重引用符)で囲みます。
- COUNTIF関数を使わずともCOUNTIFS関数で計算できます。数式に S が増えるだけです。
一応併記しておきます。
 
- ここでは、COUNTIF関数で文字列が完全に一致するセルの個数を数えます。 
 - 【問題1】名簿から男性の数をカウントしなさい。
 - 問題1の解答例
COUNTIF関数を使って求めます。 
=COUNTIF(D3:D22,"男") と入力します。なお、検索条件は文字列ですのでダブルクォーテーションでくくります。
  
 - COUNTIFS関数でも同じように求められます。
=COUNTIFS(E3:E22,"男")
  
 
- COUNTIF関数ではワイルドカードが使用できます。
ワイルドカード文字:?(クエスチョンマーク) *(アスタリスク) ~(チルダ) を使います。
- ? は任意の 1 文字
例)鹿児島県や鹿児島市を指定したい場合1文字(県と市)だけ異なるので、「鹿児島?」とします。
 - * は任意の数の文字
例)鹿児島県 宮崎県 など 県を含む文字を指定したい場合、鹿児島(3文字)と宮崎(2文字)が異なるので「*県」とします。
 - ?や*の検索には ~(チルダ) を使用します。
 
 - 【問題2】 上記の名簿で氏名が 高 で始まる人の数を数えなさい。
 - 問題2の解答例
- ワイルドカードの *(アスタリスク) を使って、 検索条件を "高*" とすると、氏名が 高 で始まるセルの数をカウントすることができます。
    =COUNTIF(C3:C22,"高*") とします。
    (ワイルドカード文字の * は半角文字で入力します)
    
 - COUNTIFS関数でも同じように計算できます。
    =COUNTIFS(C3:C22,"高*") で求めることができます。
    
 
 
- 【問題3】 上記の名簿で氏名が 子 で終わる人の数を数えなさい。
 - 問題3の解答例
- ワイルドカードの *(アスタリスク) を使って、 検索条件を "*子" とすると、氏名が 子 で終わるセルの数をカウントすることができます。
=COUNTIF(C3:C22,"*子") とします。
    (ワイルドカード文字の * は半角文字で入力します)
    
 - COUNTIFS関数でも同じように計算できます。
    =COUNTIFS(C3:C22,"*子") で求めることができます。
    
 
 
- 【問題4】 上記の名簿で氏名が3文字の人をカウントしなさい。
 - 問題4の解答例
- ワイルドカードの ?(クエスチョンマーク) を使って、 検索条件を "???" とすると、氏名が3文字のセルの数をカウントするここができます。
=COUNTIF(C3:C22,"???") とします。
    (ワイルドカード文字の ? は半角文字で入力します)
    
 - COUNTIFS関数でも同じように計算できます。
    =COUNTIFS(C3:C22,"???") で求めることができます。
    
 
 
- 【問題5】 上記の名簿で氏名の2文字目に 田 を含む人をカウントしなさい。
 - 問題5の解答例
- ワイルドカードの ?(クエスチョンマーク)と *(アスタリスク) を使って、 検索条件を "?田*" とすると、氏名の2文字目が田のセルの数をカウントするここができます。
    =COUNTIF(C3:C22,"?田*")とします。
    (ワイルドカード文字の ? と * は半角文字で入力します)
    
 - COUNTIFS関数でも同じように計算できます。
    =COUNTIFS(C3:C22,"?田*") で求めることができます。
    
 
 
- COUNTIFS関数がExcel2007以降で使えるようになりましたので、COUNTIFでこのような使い方はしなくてもよくなりました。
考え方の一例として挙げておきます。
 - 【問題6】 上記の名簿で年齢が30歳代の人の数を数えなさい 。年齢はリストに表示されている年齢とします。
 - 【解答6例】
    - 30歳代ということは30以上から40以上の数を差し引けばよいと考えることができます。
    イメージは下図のような感じです。オレンジ色の部分をそれぞれが計算しています。
    
    よって、I4セルの数式は =COUNTIF(E3:E22,">=30")-COUNTIF(E3:E22,">=40") となります。
    
 - COUNTIFS関数ではAND条件とします。
    [30歳以上] And [40未満] とします。
    =COUNTIFS(E3:E22,">=30",E3:E22,"<40") となります。
    
 
 
- ここでは、Excel for Microsoft365やExcel2021で使用できるUNIQUE関数とCOUNTIF関数でスピルの機能を利用してみます。
  
 
- I3セルに =UNIQUE(G3:G22) と入力して、ユニークな(重複しない)血液型を抽出します。
  
 - L3セルに =COUNTIFS(G3:G22,I3#) と入力します。=COUNTIF(G3:G22,I3#) でもOKです。
  =COUNTIFS(G3:G22, まで入力し、シートのセル範囲 I3:I6 を選択すると、I3# と勝手に変換されます。
  I3# は=UNIQUE(G3:G22)の計算結果が表示されている部分です。
  # はスピル範囲演算子と呼ばれ、スピルで生成される範囲を指定できます。
  
 
  - Excel for Microsoft365で利用できる GropupBy関数やPivotBy関数で計算できます。
  =GROUPBY(G3:G22,E3:E22,COUNT)
  =PIVOTBY(G3:G22,,E3:E22,COUNT)
  
 
スポンサードリンク
Home » 
エクセル関数一覧表 »  条件に一致するデータを数える関数の使い方(COUNTIFS関数,COUNTIF関数) 
PageViewCounter

Since2006/2/27