ExcelのCOUNTIF関数の使い方
Excel(エクセル)は集計機能が豊富であり、集計機能にはCOUNT機能のように、単純集計するものもありますが、実際の集計業務では、条件に応じた集計にはCOUNTIF関数が使用されます。ここでは、COUNTIF関数の基本的な使い方から複雑な集計まで解説していきます。
COUNTIF関数の基本用法
COUNTIF関数は、データの範囲と検索条件によって条件に合う個数をカウントします。COUNTIF関数は、次の構文で使用します。
COUNTIF(範囲, 検索条件)
ここで示す範囲は、参照するデータが格納されているセルの範囲です。検索条件は、文字列や数値、条件が格納されているセルなどを指定することができます。
検索条件にはワイルドカード文字が指定でき、 ”*” は任意の文字列、 ”?” 任意の1文字をカウントします。ワイルドカードは、特定の文字と組み合わせて、詳細に抽出条件を指定することもできます。
以降では、この構文を用いて実際にCOUNTIF関数を使っていきます。
COUNTIF関数を使ってみる
ここでは、実際にシートの集計でCOUNTIF関数を使用していきます。次のような「受験番号」、「姓」「名」、「性別」の基本情報、そして「英語」「国語」「数学」のスコアが記載されているシートを例にCOUNTIFで数をカウントしていきます。
COUNTIF関数を使って該当数を集計する
ここでは、「英語」「国語」「数学」のスコアシートを用いて条件の該当数を集計していきます。COUNTIF関数では、検索条件は1つしか指定することができません。スコアの分布を集計する場合は、工夫が必要です。
まず初めに、検索条件1つで集計可能なセルの該当数を集計し、基本を学んでいきます。検索条件が1つで集計できるものは、D列の ”男性” か ”女性” 、E~G列の「英語」「国語」「数学」では一意に決まる数の ”50” や ”60” などがあります。
E~G列の「英語」「国語」「数学」は、さらに不等号を用いて ”<50” のようにすれば50点未満が集計できます。ここでは「英語」の数を例に、次のように50点未満の数を集計していきます(①)。
「英語」の50点未満の数を集計するには、J2セルを選択し、「=COUNTIF(」のように入力を進めます(③)。次のように第1引数は「E$2:E$7」のように2~7行目を固定します(①)。
これは、以降の手順で「英語」の集計式を「国語」「数学」に再利用するためです。第2引数は検索条件を「$I2」とし、I2セルに ”<50” と入力しておきます(②)。
その結果、次のように「英語」が50に満たない個数として ”1” が算定され、J2セルに格納されます(①)。
このように、COUNTIF関数は対象となるデータが格納されていれば、検索条件を指定するだけで該当数が得られます。このほかにも色々と応用が可能で、性別集計などの基本情報の集計も、同じ要領で簡単に追加することができます(②)。
性別集計の例では、検索条件を直接記述し「=COUNTIF(D2:D7, “男性”)」や「=COUNTIF(D2:D7, “女性”)」のように記述することもできます。
続いて、J3セルでは「英語」のスコアを50〜59点のように集計します。COUNTIF関数を使った場合は、「50点以上」かつ「60点未満」のように複数条件となるため難易度が高くなります。実際の求め方は、次項で紹介していきます。
【参考】:Microsoft サポート: COUNTIF 関数
COUNTIF関数で複数条件を設定する(基本編)
ここでは、COUNTIF関数で複数条件を設定する方法を学んでいきます。具体的には、J3セルのように、「英語」のスコアを50〜59点など「50点以上」かつ「60点未満」のような複数条件の際の、COUNTIF関数の使い方を学びます。
ポイントは、すでにJ2セルに50点未満のスコア数が分かっていることです。次のように、60点未満のスコア数をCOUNTIF関数で求め、50点未満のスコア数を引くと、50〜59点のスコアを求めることができます。COUNTIF関数の用法はJ2と同じです(①②)。
集計で除外する個数は合計値を求めるSUMを使用し、「SUM(J$2:J2)」のように指定すると、2行目から入力行の1つ上の合計値を引くことができます(③)。
このJ3セルが入力できたら、ほぼ完成です。あとはセルの数式をコピーするだけです。具体的には、次のようにJ3セルを選択し、右下のつまみを1番下J7セルまでドラッグアンドドロップしてコピーします(①)。
これでJ列の集計は完成しました。続いて、J列の数式をK〜L列にコピーします。具体的には、「J2:J7」の範囲全体を選択し、右下のつまみをドラッグアンドドロップしてL列までコピーします(①)。
これによって、次のように数式がオートフィル機能によって各セルに反映されます。
以上のように、COUNTIF関数自体は簡単に使えますが、複雑な集計では工夫が必要なことも学ぶことができました。
COUNTIF関数で複数条件を設定する(応用編)
ここでは応用編として、COUNTIF関数で複数条件を設定するための関数を学んでいきます。Excelでは、複数条件を指定するために、COUNTIFS関数を提供しています。使用する構文は次の通りです。
COUNTIFS(範囲1, 検索条件1, [範囲2, 検索条件2], [範囲3, 検索条件3]...)
第1引数と第2引数、第3引数と第4引数はそれぞれセットで記述し、それ以降も同じようにセットで記述していきます。第1引数と第2引数のみの場合は、COUNTIF関数と変わらず使用できます。
複数の条件を指定した場合は、すべての条件が満たされた回数がカウントされるので、条件1かつ条件2のようなAND条件と理解すると良いでしょう。COUNTIFS関数では複数の検索条件が指定できるため、シンプルに使用できます。
ここでは、次のように「英語」「国語」「数学」のスコア集計を進めていきます(①)。COUNTIF関数との違いは、この例で示すようにスコアの下限と上限をそれぞれ条件に設定できることです。そのため、I列とJ列にスコアの下限と上限を記述しておきます(②)。
最初にK2セルを選択し、「=COUNTIFS(」と記述を進めていきます。
引数は第1引数が「英語」のスコアで「E$2:E$7」です(①)。第2引数はスコアの下限で「$I2」を指定します(②)。
続いて第3引数は「英語」のスコアなので第1引数と同じ「E$2:E$7」です(③)。第4引数はスコアの上限「$J2」を指定します(④)。入力したセルをコピーして使用するために、 ”$” をつけて位置を固定します。
入力欄には引数で選択したセルがカラー表示されていますので、指定に間違いがないことを確認します(⑤)。
1つ目K2セルの入力が終わったら、もう完成間近です。次のようにK2セルを選択し、右下のつまみをドラッグアンドドロップしてK7セルまでコピーします(①)。
続いて、その状態で右下のつまみをドラッグアンドドロップしてM列までコピーします(①)。
この操作の結果、セルの数式がコピーされ、次のようにオートフィル機能によって値が求められます。
このように、1つのセルに入力するだけで数式が簡単にコピーできます。複数条件の場合は、COUNTIFS関数の方が簡単で使いやすいことが分かります。
【参考】:Microsoft サポート: COUNTIFS 関数
空白ではないセルの数を数えるには
COUNTIF関数やCOUNTIFS関数は、条件に指定した値をカウントします。Excelでは、空白でないセルを数えて値の有無を確認することもできますが、検索条件に「”<>”」を指定するなど簡単ではありません。
Excelで提供されるCOUNTA関数は、引数に範囲を指定するだけですべての種類のデータの有無を集計してくれます。データの欠損や記入漏れなどに活用します。シートの保全性を考えると、COUNTA関数の方が分かりやすく記述できます。
【参考】:Microsoft サポート: COUNTA 関数
COUNTIFなど、セルの集計関数は用途に合わせて選択しよう
Excelには、単純集計のCOUNT関数や空白以外をカウントするCOUNTA関数があります。条件を指定する場合は、COUNTIF関数や複数条件に対応するCOUNTIFS関数も提供されています。このように、COUNTIFに代表される集計関数は、用途に応じて最適なものを選ぶと良いでしょう。
その他の関連記事
その他に関連する内容は、下記の記事でも紹介しています。ぜひ参考にしてください。
【参考】:Excelの表の作り方!基本から応用まで表の作成方法を図解
【参考】:Excelのマクロとは?初心者向けに概要からできること・作り方を解説
【参考】:Excelを読み取り専用にするには?解除できない場合の対処も解説
【参考】:Excelのプルダウンを作成するには?初心者向けに3ステップで解説
【参考】:Excelのチェックボックスを作るには?新機能と従来機能を解説
【参考】:Excelのセル内改行方法を解説!実務で使える活用テクニック
【参考】:Excelで日付から曜日を算出するには?基本からカスタマイズまで
【参考】:Excelの文字を縦書きにするには?基本操作と表示の調整を図解
【参考】:Excelで掛け算をマスターしよう!初心者向けにやさしく解説
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから