よねさんのWordとExcelの小部屋|Excel(エクセル)講座の総目次|Excel(エクセル)関数の技|カウントする関数
- セル数をカウントするワークシート関数をまとめて説明しています
COUNT関数:=COUNT(数値1,数値2,・・・)
- 数値または数値が入力されたセルをカウントする。
- 引数に数値、論理値、数値を表す文字列を指定した場合
- 数値、日付、数値を表す文字列が計算の対象となります。
エラー値、数値に変換できない文字列は無視されます。
- =COUNT(10,"10","2007/4/1",TRUE,FALSE) は「5」になります。
- 引数にセル範囲を指定した場合
- 数値だけが計算の対象となり、空白セル、論理値、文字列、エラー値は無視されます。
- =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,"*ん*")
ワイルドカード「*」を利用しています。
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」が返ります。
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関数で求めることができます。
-
Excel2007ではCOUNTIFS関数が使用できます。
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="△"))
条件式を「+」(プラス)でつないでいます。
- AND条件
- 性別が「男」で出席が「○」のデータ(行)をカウントします。
- =SUMPRODUCT(($C$4:$C$10=G4)*($E$4:$E$10="○"))
条件式を「*」(アスタリスク)でつないでいます。
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:H4)
ただし、フィールドには数値の列を指定します。
例ではD列に数値が入力されているデータ(行)数がカウントされます。
例えば、D4セルに「A」と入力されていたら「4」が返されてしまいます。
- =DCOUNT(B3:E10,,G3:H4) ←フィールドを省略した例です。
- 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の小部屋|Excel(エクセル)講座の総目次|Excel(エクセル)関数の技:目次|カウントする関数
PageViewCounter

Since2006/2/27