目次
Microsoft Excelには、空白や非空白、数値、日付、テキスト値、特定の単語や文字を含むセルなど、さまざまな種類のセルをカウントするための関数が用意されています。
今回は、指定した条件を満たすセルをカウントするExcelのCOUNTIF関数を取り上げます。 まず、構文と一般的な使い方を簡単に説明し、いくつかの例を挙げて、複数の条件や特定の種類のセルでこの関数を使う場合に考えられるクセを警告します。
要するに、COUNTIF式はすべてのExcelバージョンで同じなので、このチュートリアルの例は、Excel 365、2021、2019、2016、2013、2010、2007で使用できます。
ExcelのCOUNTIF関数 - 構文と使用法
ExcelのCOUNTIF関数は、指定された範囲内で特定の基準、または条件を満たすセルをカウントするために使用されます。
例えば、COUNTIF式を書くと、ワークシート内のセルのうち、指定した数より大きいか小さい数を含むセルの数を調べることができます。 ExcelでのCOUNTIFのもう一つの典型的な使い方は、特定の単語や特定の文字で始まるセルを数えることです。
COUNTIF関数の構文は非常にシンプルです。
COUNTIF(range, criteria)ご覧の通り、引数は2つだけですが、どちらも必須です。
- レンジ - は、カウントする1つまたは複数のセルを定義します。 通常Excelで行うように、A1:A20のような数式で範囲を指定します。
- クライテリア - は、どの細胞を数えるかを関数に指示する条件を定義する。 これは 番号 , テキスト文字列 , セル参照 または 顔 例えば、"10", A2, ">=10", "何らかのテキスト "のような条件です。
そして、ExcelのCOUNTIF関数の最も簡単な例です。 下の画像は、過去14年間のベストテニスプレイヤーのリストです。 計算式は、以下の通りです。 =COUNTIF(C2:C15, "Roger Federer")
は、ロジャー・フェデラーの名前が何回出てくるかカウントしています。
注)基準は大文字・小文字を区別しません。つまり、上記の式で基準として「roger federer」と入力しても、同じ結果になります。
Excel COUNTIF関数の使用例
COUNTIF関数の構文は非常にシンプルですが、ワイルドカード文字や他のセルの値、さらには他のExcel関数など、さまざまな条件を指定することができます。 この多様性が、COUNTIF関数を非常に強力で、多くのタスクに適したものにしています(この後の例でご覧いただけます)。
テキストと数値のCOUNTIF式(完全一致)
をカウントするCOUNTIF関数について説明しました。 テキスト値 は、指定された条件に正確に一致することを意味します。 正確な文字列を含むセルに対する数式を思い出してください。 =COUNTIF(C2:C15, "Roger Federer")
...というわけで、入場です。
- としての範囲。 第1パラメータ
- としてのコンマは のデリミタです。
- として引用符で囲まれた単語または複数の単語を指定します。 の基準で判断しています。
テキストを入力する代わりに セル参照 その単語を含む、全く同じ結果を得ることができます。 =countif(c1:c9,c7)
.
同様に、COUNTIF式は次のように機能します。 計数 以下のスクリーンショットに示すように、以下の数式はD列の数量5のセルを完全にカウントしています。
=countif(d2:d9, 5)
この記事では、任意のテキスト、特定の文字、またはフィルタリングされたセルだけを含むセルをカウントするためのいくつかのより多くの数式を見つけることができます。
ワイルドカード文字を含むCOUNTIF式(部分一致)
Excelのデータに、カウントしたいキーワードの複数のバリエーションが含まれている場合、ワイルドカード文字を使用して、特定の単語、フレーズ、または文字を含むすべてのセルをカウントするために、次のように使用します。 セルに含まれる部分 .
例えば、異なる人に割り当てられたタスクのリストがあり、ダニー・ブラウンに割り当てられたタスクの数を知りたいとします。 ダニーの名前はいくつかの異なる書き方があるので、検索条件として「*Brown*」と入力します。 =COUNTIF(D2:D10, "*Brown*")
.
An アスタリスク (*) は、上記の例のように、先頭と末尾に任意の文字が連続するセルを検索するために使用します。 任意の1文字にマッチさせる必要がある場合は、(*) を入力します。 クエスチョンマーク (?)の代わりに、以下のようになります。
Tip. また、次のことも可能です。 セル参照にワイルドカードを使用する 例えば、「*Brown*」を数式で直接指定する代わりに、F1 などのセルに入力して、「Brown」を含むセルをカウントする次の数式を使用できます: =COUNTIF(D2:D10, "*"&F1& "*")
特定の文字で始まる、または終わるセルをカウントする
ワイルドカード文字、アスタリスク(*)、クエスチョンマーク(?)のいずれかを使用することができ、どのような結果を得たいかに応じて基準を設定します。
というセルの数を知りたい場合。 かきおろす は、セルに他の文字が何個含まれていても、これらの数式を使用します。
=COUNTIF(C2:C10,"Mr*")
- で始まるセルを数える。 さん .
=COUNTIF(C2:C10,"*ed")
- で終わるセルを数える。 ed」です。
下の画像は、2つ目の公式を実際に使っているところです。
特定の文字で始まる、または終わるセルを数え、その中に 正確な文字数 の場合、ExcelのCOUNTIF関数を使用し、条件にクエスチョンマーク文字(?
=COUNTIF(D2:D9,"??own")です。
- は、セルD2~D9のうち、"own "で終わり、スペースを含めてちょうど5文字になるセルの数をカウントする。
=COUNTIF(D2:D9, "Mr???????")
- は、セルD2〜D9のうち、"Mr "で始まり、スペースを含めてちょうど8文字になるセルの数をカウントする。
ヒント:ある文字列を含むセルの数を求めるには アクチュアルクエスチョンマーク または アスタリスク を入力する場合は、数式中の ? や * の前にチルダ (~) を入力します。 たとえば、次のようになります。 =COUNTIF(D2:D9,"*~?*")
は、範囲D2:D9にあるクエスチョンマークを含むすべてのセルをカウントします。
Excel 空白セルと非空白セルに対するCOUNTIF
これらの数式は、ExcelのCOUNTIF関数を使用して、指定した範囲内の空白または非空白のセルの数をカウントする方法を示しています。
COUNTIF 空白ではない
ExcelのCOUNTIFチュートリアルや他のオンラインリソースでは、このようなExcelの非空白セルを数えるための数式を目にすることがあります。
=countif(a1:a10, "*")
しかし、実際には、上記の式は、任意のセルを含むセルだけをカウントします。 テキスト値 つまり、日付や数字を含むセルは空白セルとして扱われ、カウントに含まれないということです
ユニバーサルが必要な場合 空白でないすべてのセルをカウントするためのCOUNTIF式 を指定した範囲内で、どうぞ。
COUNTIF( レンジ ,"")または
COUNTIF( レンジ ,""&"")この式は、すべての値タイプで正しく動作します。 テキスト , 年月日 と 計数 - 下のスクリーンショットをご覧ください。
COUNTIF ブランク
逆の場合、つまり、ある範囲内の空白のセルを数える場合は、同じアプローチに従います - テキスト値にはワイルドカード文字を使用し、すべての空のセルを数えるには "" 基準を使用した数式を使用します。
への式 空白のセル数 :
COUNTIF( レンジ ,""& "*").アスタリスク(*)は任意の文字列にマッチするので、この式では*と等しくないセル、つまり指定した範囲にテキストが含まれていないセルがカウントされます。
ブランクのユニバーサルCOUNTIF式 (すべての値型) :
COUNTIF( レンジ ,"")上記の数式は、数値、日付、テキスト値を正しく処理します。 例えば、範囲C2:C11にある空のセルの数を取得する方法は次のとおりです。
=countif(c2:c11,"")
Microsoft Excelには、空白セルを数えるための別の関数、COUNTBLANKがあることに注意してください。 たとえば、次の数式は、上のスクリーンショットにあるCOUNTIF数式とまったく同じ結果を生成します。
空白を数える。
=countblank(c2:c11)です。
空白以外を数える。
=rows(c2:c11)*columns(c2:c11)-countblank(c2:c11)
また、COUNTIFとCOUNTBLANKはともに、以下のようなセルをカウントすることに留意してください。 空の文字列 空白にしか見えないセルを空白として扱いたくない場合は、"="を使って クライテリア .例えば
=countif(c2:c11,"=")
Excelでの空白・非空白の数え方については、こちらをご覧ください。
- Excelで空のセルをカウントする3つの方法
- Excelで空白でないセルを数える方法
COUNTIF より大きいか、小さいか、または等しい。
値を持つセルをカウントするには より大きい , 未満 または 同様 を指定する場合は、下表のように、対応する演算子を条件に追加するだけです。
COUNTIF式では、演算子と数値は必ず一致することに注意してください。 引用符で囲まれた .
基準 | 計算式の例 | 商品説明 |
---|---|---|
より大きい場合はカウントする | =COUNTIF(A2:A10,">5") | 値が5より大きいセルを数える。 |
未満であればカウントする。 | =COUNTIF(A2:A10,"<5") | 5以下の値を持つセルを数える。 |
に等しい場合はカウントする。 | =COUNTIF(A2:A10,"=5") | 値が5と等しいセルを数える。 |
と等しくない場合はカウントする。 | =countif(a2:a10, "5") | 値が5でないセルを数える。 |
以上であればカウントする | =COUNTIF(C2:C8,">=5") | 値が5以上であるセルを数える。 |
以下であればカウントする。 | =COUNTIF(C2:C8,"<=5") | 値が5以下のセルを数える。 |
また、上記の数式をすべて使って セル数 の場合、基準の数字をセル参照に置き換えるだけです。
注 セル参照 たとえば、セル D3 の値よりも大きな値を持つセル D2:D9 の範囲を数えるには、次の数式を使用します。 =COUNTIF(D2:D9、">"&D3)
:
を含むセルをカウントしたい場合。 じつえんざんし をセルの内容の一部として使用する場合、つまり、文字 ">"、"<"、"=" を使用する場合は、条件の演算子にワイルドカード文字を使用します。 このような条件は、数値式ではなく、テキスト文字列として扱われます。 例えば、数式 =COUNTIF(D2:D9,"*>5*")
は、範囲D2:D9のセルで、「納期:5日」または「納期:5日」のような内容のものをすべて数えます。
ExcelのCOUNTIF関数を日付で使用する
指定した日付や他のセルの日付より大きい、小さい、または同じ日付のセルを数えるには、先ほど説明したような数式を使って、すでにおなじみの方法で行います。 上記の数式はすべて、日付にも数字にも使えます。 少し例を挙げてみましょう。
基準 | 計算式の例 | 商品説明 |
---|---|---|
指定された日付と等しい日付を数える。 | =COUNTIF(B2:B10,"6/1/2014") | 範囲B2:B10で日付が1-Jun-2014のセルの数をカウントします。 |
他の日付より大きいか等しい日付を数える。 | =COUNTIF(B2:B10,">=6/1/2014") | 範囲B2:B10で、2014/6/1以上の日付があるセルの数を数える。 |
他のセルの日付より大きいか等しい日付を、X日間引いて数える。 | =COUNTIF(B2:B10,">="&B2-"7") | 範囲B2:B10で、B2の日付から7日を引いた値以上の日付があるセルの数を数えなさい。 |
これらの一般的な使用方法とは別に、COUNTIF関数をTODAY()などの特定のExcel日付・時刻関数と組み合わせて使用すると、現在の日付に基づいてセルをカウントすることが可能です。
基準 | 計算式の例 |
---|---|
現在の日付と等しい日付を数える。 | =countif(a2:a10,today()) |
現在の日付より前の日付、つまり今日より前の日付を数える。 | =COUNTIF(A2:A10,"<"&TODAY())です。 |
現在の日付より後の日付、つまり今日より大きい日付を数える。 | =COUNTIF(A2:A10,">"&TODAY())の場合 |
1週間以内に締め切りのある日付を数える。 | =COUNTIF(A2:A10,"="&TODAY()+7) |
特定の日付範囲内の日付を数える。 | =COUNTIF(B2:B10, ">=6/1/2014")-COUNTIF(B2:B10, ">6/7/2014") |
ここでは、このような数式を実際のデータで使用した例を紹介します(執筆時点の今日は2014年6月25日です)。
Excel COUNTIF(複数条件付き
実は、ExcelのCOUNTIF関数は、複数の条件に一致するセルを数えるようには設計されていません。 ほとんどの場合、2つ以上の条件に一致するセルを数えるには、その複数形の対応するCOUNTIFS関数を使用します(AND論理)。 しかし、いくつかの課題は、一つの数式に2つ以上のCOUNTIF関数を組み合わせることによって解決することができます。
2つの数値の間の値を数える
ExcelのCOUNTIF関数の最も一般的なアプリケーションの1つは、特定の範囲内の数字、すなわちXより小さく、Yより大きい数をカウントすることです。
=COUNTIF(B2:B9,">5")-COUNTIF(B2:B9,">=15")
この処方の仕組み
ここでは、2つのCOUNTIF関数を使っています。最初の関数は、5より大きい値の数を求め、もう1つは、15以上の値の数を求めます。 そして、前者から後者を引いて、目的の結果を得るのです。
複数のOR条件を持つセルをカウントする
複数の異なる項目を範囲指定したいときは、COUNTIF関数を2つ以上組み合わせます。 たとえば、買い物リストがあり、ソフトドリンクが何本入っているかを調べたい場合、次のような数式を使います。
=COUNTIF(B2:B13, "Lemonade")+COUNTIF(B2:B13, "*juice")
2番目の基準にはワイルドカード文字(*)が含まれていますが、これはリスト上のすべての種類のジュースをカウントするために使用されていることに注意してください。
同じように、複数の条件を指定してCOUNTIF式を書くことができます。 ここでは、レモネード、ジュース、アイスクリームをカウントする、複数のOR条件を指定したCOUNTIF式の例を示します。
=COUNTIF(B2:B13, "Lemonade") + COUNTIF(B2:B13, "*juice") + COUNTIF(B2:B13, "Ice cream")
ORロジックでセルをカウントする他の方法については、こちらのチュートリアル:Excel COUNTIFとCOUNTIFS with OR conditionsをご覧ください。
COUNTIF関数による重複値・一意値の検索
ExcelのCOUNTIF関数のもう一つの使い方は、一つの列、二つの列の間、または行の中の重複を見つけることです。
例1.1列の重複を探す、数える
例えば、この単純な式 =COUNTIF(B2:B10,B2)>1 は、範囲 B2:B10 のすべての重複項目を検出し、別の関数 =COUNTIF(B2:B10,TRUE) は重複の数を教えてくれます。
例2:2つの列の間の重複を数える
2つの別々のリスト、たとえばB列とC列にある名前のリストがあり、両方の列に現れる名前の数を知りたい場合、ExcelのCOUNTIFとSUMPRODUCT関数を組み合わせて使用すると、次のように数えることができます。 スジ :
=SUMPRODUCT((COUNTIF(B2:B1000,C2:C1000)>0)*(C2:C1000""))
さらにもう一歩踏み込んで、何個あるか数えることもできます。 一意名 C列には、B列に表示されていない名前が表示されます。
=SUMPRODUCT((COUNTIF(B2:B1000,C2:C1000)=0)*(C2:C1000""))
ヒント:重複するセルや重複する項目を含む行全体を強調表示したい場合は、このチュートリアルで紹介したように、COUNTIF数式に基づいて条件付き書式ルールを作成することができます - 重複を強調するExcel条件付き書式設定数式。
例3.行の重複と一意な値を数える
列ではなく、特定の行の重複または一意の値をカウントしたい場合は、以下のいずれかの式を使用してください。 これらの式は、例えば、宝くじの抽選履歴を分析するために役立つ場合があります。
行内の重複を数える。
=SUMPRODUCT((COUNTIF(A2:I2,A2:I2)>1)*(A2:I2""))
行内の一意な値を数える。
=sumproduct((countif(a2:i2,a2:i2)=1)*(a2:i2""))
Excel COUNTIF - よくある質問と問題点
これらの例は、ExcelのCOUNTIF関数の感触をつかむのに役立ったことと思います。 もし、あなたのデータで上記の数式を試してうまくいかなかったり、作成した数式に問題がある場合は、次の5つの最も一般的な問題に目を通してください。 そこに答えや役立つヒントが見つかる可能性が高いです。
1.連続しない範囲のセルに対するCOUNTIF
質問:Excelで、連続しない範囲やセルの選択範囲にCOUNTIFを使用するにはどうすればよいですか?
回答 ExcelのCOUNTIFは、隣接しない範囲では動作しません。 また、その構文では、最初のパラメータとして複数の個別のセルを指定することはできません。 その代わり、いくつかのCOUNTIF関数を組み合わせて使用することができます。
間違っている。 =COUNTIF(A2,B3,C4,">0")
そうですね。 =COUNTIF(A2,">0") + COUNTIF(B3,">0") + COUNTIF(C4,">0")
例えば、以下の2つの数式は、スクリーンショットにあるような同じ結果をもたらします。
=SUM(COUNTIF(INDIRECT({"B2:B8","D2:C8"}),"=0"))
=countif($b2:$b8,0) + countif($c2:$c8,0)
2.COUNTIF式におけるアンパサンドと引用符
Question: COUNTIF式でアンパサンドを使うのはどんな場合ですか?
回答 COUNTIF関数の中で一番厄介な部分でしょう。個人的には非常に分かりにくいのですが、少し考えればその理由が分かると思います。 引数のテキスト文字列を構成するには、アンパサンドと引用符が必要です。 ですから、このルールを守ればいいのです。
で数値やセル参照を使用した場合、その数値やセルは せいごう を指定する場合は、アンパサンドや引用符は不要です。
=countif(a1:a10,10)
または
=countif(a1:a10,c1)
あなたの基準に含まれる場合 テキスト は、ワイルドカード文字または 番号付き論理演算子 のように、引用符で囲んでください。
=COUNTIF(A2:A10, "lemons")
または
=countif(a2:a10, "*")
または =COUNTIF(A2:A10,">5")
を使った式で、条件を指定する場合。 セル参照 または別のExcel 機能 のように、引用符("")で文字列を開始し、アンパサンド(&)で文字列を連結して終了させる必要があります。 例えば、以下のようになります。
=COUNTIF(A2:A10,">"&D2)
または
=COUNTIF(A2:A10,"<="&TODAY())
アンパサンドが必要かどうか迷ったときは、両方の方法を試してみてください。 ほとんどの場合、アンパサンドは正しく機能し、例えば以下の式はどちらも同じように機能します。
=COUNTIF(C2:C8,"<=5")
と
=COUNTIF(C2:C8,"<="&5)
3.フォーマットされた(色分けされた)セルに対するCOUNTIF
質問:値ではなく、塗りつぶしやフォントの色でセルを数えるにはどうすればよいですか?
回答 残念ながら、ExcelのCOUNTIF関数の構文は、条件としてフォーマットを使用することはできません。 色に基づいてセルをカウントまたは合計する唯一の方法は、マクロ、またはより正確にExcelユーザー定義関数を使用しています。 この記事では、条件付きフォーマットされたセルと同様に手動で着色したセルで動作するコードが見つかります - 塗りつぶしによってExcelセルのカウントと合計方法とフォントの色
4.COUNTIF式での#NAME?エラー
問題:COUNTIF式で#NAME?エラーが発生します。 どうしたら直せますか?
回答 上記1.をご確認の上、計算式の範囲に誤りがある可能性があります。
5.エクセルCOUNTIF式が動作しない
問題:COUNTIF式が機能しない!何か間違ったことをしたのか?
回答 一見正しく見える数式を書いたのに、うまく動かない、あるいは間違った結果を出してしまう場合は、範囲、条件、セル参照、アンパサンドや引用符の使用など、最もわかりやすいところからチェックします。
の使用には十分注意してください。 空間 この記事の数式を作るとき、正しい(と確信していた!)数式が動かないので、髪の毛を引き抜く寸前でした。 結局、問題はその間のわずかなスペースにあったのです、あーあ・・・例えば、こんな数式を見てください。
=COUNTIF(B2:B13," Lemonade")
.
一見したところ、引用符の後に余分なスペースがあることを除けば、何も問題はありません。 Microsoft Excelは、エラーメッセージや警告、その他の表示なしに、この数式をうまく飲み込みます。
複数の条件でCOUNTIF関数を使用する場合は、計算式を複数に分割して、それぞれの関数を個別に検証してください。
次回は、Excelで複数の条件を指定してセルを数える方法をご紹介します。 来週もよろしくお願いします。