Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
条件に一致するデータを数える関数の使い方(COUNTIFS関数,COUNTIF関数):Excel関数
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