-
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