- Home »
- エクセル関数の技 »
- カウントする関数の技
- セル数をカウントするワークシート関数の使い方をまとめて説明しています 。
COUNT、COUNTA、COUNTBLANK、COUNTIF、COUNTIFS、SUMPRODUCT、DCOUNT、DCOUNTA の8種類の使い方を解説しています。
作成:2007/4/14,更新:2020/5/30
COUNT関数:=COUNT(数値1,数値2,・・・)
- 数値または数値が入力されたセルをカウントする。
- 引数に数値、論理値、数値を表す文字列を指定した場合
- 数値、日付、数値を表す文字列が計算の対象となります。
エラー値、数値に変換できない文字列は無視されます。
- =COUNT(10,"10","2007/4/1",TRUE,FALSE) は「5」になります。
10は数値、"10"は数値を表す文字列なのでカウントされます。
"2007/4/1"は日付を表す文字列なのでカウントされます。
TRUEとFALSEは論理値なのでカウントされます。しかし、=COUNT("TRUE","FALSE")とすると文字列となり、カウントされず「0」となります。
- 引数にセル範囲を指定した場合
- 数値だけが計算の対象となり、空白セル、論理値、文字列、エラー値は無視されます。
- =COUNT(B1:B5) は以下の例では「1」となります。
- C列の=COUNT(B1)はB列の値がカウントされているか否かを個別に調べたものです。
B1セルの数値「10」のみがカウントされているのが分かります。
COUNTA関数:=COUNTA(数値1,数値2,・・・)
- 値が入力されているセルをカウントする。空白セル(未入力セル)はカウントされないが、""はカウントされます。
- =COUNTA(B1:B6) は以下の例では「5」となります。
- C列の=COUNTA(B1)はB列の値がカウントされているか否かを個別に調べたものです。
B5セルの未入力セルのみがカウントされていない。
COUNTBLANK関数:=COUNTBLANK(数値1,数値2,・・・)
- 空白文字列(数式などで返された""のことです)セルと未入力セルをカウントする。
- =COUNTBLANK(B1:B3) とすると「2」となります。
- B1,B2セルがカウントされます。
COUNTIF関数:=COUNTIF(範囲,検索条件)
- 検索条件が文字列の場合
- 商品名が「りんご」のセル数をカウントする。=COUNTIF(C4:C10,"りんご")
検索条件は文字列なので、「"」(ダブルクォーテーション)で括る。
- 検索条件が数値の場合
- 単価が100のセルをカウントする
- =COUNTIF(D4:D10,100)
検索条件はそのままで、「"」で括らない。
- 検索条件がシリアル値の場合
- 日付が5月1日(2007/5/1)のセル数をカウントする
- =COUNTIF(B4:B10,"2007/5/1")
シリアル値を「"」で括ります。
- 日付の期間が5月1日(2007/5/1)〜5月2日(2007/5/2)のセル数をカウントする
- 2007/5/1以上の合計から2007/5/3以上の合計を差し引きます。
=COUNTIF(B4:B10,">=2007/5/1")-COUNTIF(B4:B10,">=2007/5/3")
比較演算子(>=:以上)を使っています。
- 検索条件をセル参照する場合
- B12セルに「りんご」と入力されている場合
- =COUNTIF(B4:B10,B12)
検索条件に参照セルのセル番地を入れます。
- B12セルに「りんご」と入力されていて、りんご以外のセル数をカウントする
- =COUNTIF(B4:B10,"<>"&B12)
比較演算子(<>:等しくない)は「"」で括り、参照セル番地とを文字列演算子「&」でつなぎます。
-
- ワイルドカードと組合せる場合
- 商品名に「ん」を含むもの(この例ではりんごとみかん)のセル数をカウントする
- =COUNTIF(C4:C10,"*ん*")
ワイルドカード「*」を利用しています。
- 商品名が「ん」で終わるものをカウントするには =COUNTIF(C4:C10,"*ん")
- 商品名が「り」で始まるものをカウントするには =COUNTIF(C4:C10,"ん*")
- 商品名の2文字目が「ん」である場合は =COUNTIF(C4:C10,"?ん*")
ワイルドカードの ? で文字1文字を代用します。
- 3文字の商品名のものをカウントするには =COUNTIF(C4:C10,"???")
- 商品名が3文字で2文字目が「ん」である場合は =COUNTIF(C4:C10,"?ん?")
SUMPRODUCT関数:=SUMPRODUCT(配列1,配列2,配列3,...)
- SUMPRODUCT関数を使ってカウントする事もできます。
- =SUMPRODUCT((C4:C10=B12)*1)
- 上の式は=SUMPRODUCT(({TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE})*1)と配列になっています。
よって、TRUE*1=1、FALSE*1=0となるので、「3」が返ります。
- ここで使用しているデータ
|
B |
C |
D |
E |
3 |
氏名 |
性別 |
年齢 |
出席 |
4 |
井上 |
男 |
20 |
○ |
5 |
石田 |
女 |
25 |
× |
6 |
飯野 |
男 |
22 |
△ |
7 |
内田 |
女 |
27 |
○ |
8 |
上村 |
男 |
30 |
○ |
9 |
榎木 |
女 |
34 |
× |
10 |
小川 |
男 |
21 |
○ |
11 |
○:出席 ×:欠席 △:未定 |
COUNTIF関数:=COUNTIF(範囲,検索条件)
- OR条件
- 出席が○または△のセル数を数える
- =COUNTIF(E4:E10,"○")+COUNTIF(E4:E10,"△")
- =SUM(COUNTIF(E4:E10,{"○","△"}))
(注)この数式ではセル参照はできません。
- AND条件
- 年齢が20以上かつ25以下のセル数を数える
- F列を作業列として利用します。
F4セルに条件式=AND($D$4:$D$10>=20,$D$4:$D$10<=25)を入れF10までコピーします。
=COUNTIF(F4:F10,TRUE) でセル数をカウントします。
- 作業列を使わず、25以下のカウント数から20未満のカウント数を引きと考えれば、
=SUM(COUNTIF(D4:D10,{"<=25","<20"})*{1,-1})
としてカウントできます。
- =SUM(COUNTIF(D4:D10,{"<=25","<20"})*{1,-1})
=SUM({4,0}*{1,-1})
=SUM({4,0})
=4
といった計算になっています。
- 同じく、20以上のカウント数から25を超えるカウント数を引くと考えれば、
=SUM(COUNTIF(D4:D10,{">=20",">25"})*{1,-1})
となります。
- =SUM(COUNTIF(D4:D10,{">=20",">25"})*{1,-1})
=SUM({7,3}*{1,-1})
=SUM({7,-3})
=4
といった計算になっています。
- 性別が男で出席が○の人数を数える
- 作業列を使う場合は、F4セルに=C4&"_"&E4 と入れF10までコピーします。
=COUNTIF(F4:F10,"男_○") でセル数をカウントします。
- (注)この例では区切り文字として「_」(アンダーバー)を使いました。
- F4セルに=AND(C4:C10="男",E4:E10="○") として「i」と同じように=COUNTIF(F4:F10,TRUE) としても求められます。
- 作業列を使わない場合は、下のSUMPRODUCT関数で求めることができます。
-
COUNTIFS関数も使用できます。Excel2007で追加された関数です。
COUNTIFS関数:COUNTIFS(範囲 1,検索条件 1,範囲 2,検索条件 2...)
- =COUNTIFS(C4:C10,"男",E4:E10,"○")
-
配列数式を利用する(COUNTIF関数とは関係ありません)
- 年齢が20以上かつ25以下のセル数を数える
- =SUM(IF((D4:D10>=20)*(D4:D10<=25),1)) と入力してShift+Ctrl+Enterで数式の入力を確定します。
数式が { } (中括弧)でくくられます。
SUMPRODUCT関数:=SUMPRODUCT(配列1,配列2,配列3,...)
- SUMPRODUCT関数を使ってカウントする事もできます。
- OR条件
- 出席が○または△のセル数を数える
- =SUMPRODUCT((E4:E10="○")+(E4:E10="△"))
OR条件では条件式を「+」(プラス)でつないでいます。
- AND条件
- 性別が「男」で出席が「○」のデータ(行)をカウントします。
- =SUMPRODUCT(($C$4:$C$10=G4)*($E$4:$E$10="○"))
AND条件では条件式を「*」(アスタリスク)でつないでいます。
DCOUNTA関数:=DCOUNTA(Database,フィールド,Criteria)
DCOUNT関数:=DCOUNT(Database,フィールド,Criteria)
- 条件をセル範囲に書き出しておいて該当するフィールドのセル数をカウントします。
- OR条件
- 出席が○または△のデータ(行)をカウントします。
- 条件はG3:G5に書き出しています。
- =DCOUNTA(B3:E10,E3,G3:G5)
=DCOUNTA(B3:E10,,G3:H4) ←フィールドを省略した例です。
- DCOUNT関数でも同様です。
- =DCOUNT(B3:E10,D3,G3:G5)
ただし、フィールドには数値の列を指定します。
例ではD列に数値が入力されているデータ(行)数がカウントされます。
例えば、D4セルに「A」と入力されていたら「4」が返されてしまいます。
- =DCOUNT(B3:E10,,G3:G5) ←フィールドを省略した例です。
- AND条件
- 性別が「男」かつ出席が「○」のデータ(行)をカウントします。
- 条件はG3:H4に書き出しています。
- =DCOUNTA(B3:E10,D3,G3:H4)
=DCOUNTA(B3:E10,,G3:H4) ←フィールドを省略した例です。
- DCOUNT関数でも同様です。
- =DCOUNT(B3:E10,D3,G3:H4)
ただし、フィールドにD3を指定した場合、D列に数値が入力されているデータ(行)数がカウントされます。
例えば、D4セルに「A」と入力されていたら「2」が返されてしまいます。
- =DCOUNT(B3:E10,,G3:H4) ←フィールドを省略した例です。
- 関連するページ
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数の技 »
カウントする関数の技
PageViewCounter
Since2006/2/27