EXCELのCOUNTIF関数で0より大きいセルを数える方法は?COUNTIFSとの違いも!(条件付きカウント:数式:関数など)
Excelで売上、在庫数、点数、作業時間などを集計するとき、0より大きい値だけを数えたい場面は少なくありません。
単純に空白以外を数えるだけでは0も対象になってしまうため、COUNTIF関数やCOUNTIFS関数を使って条件を明確に指定することが大切です。
この記事では、0より大きいセルを数える基本数式から、複数条件での集計、文字列や空白が混じる表での注意点まで、実務で使いやすい形で解説します。
COUNTIF関数による正の数の集計

それではまず、0より大きいセルを数える基本的な方法について解説していきます。
基本数式の入力方法
0より大きい数値が入力されたセル数を数えるには、COUNTIF関数を使用します。
たとえば、A2からA20までの範囲に数値があり、その中から正の数だけをカウントしたい場合は、次の数式を入力します。
=COUNTIF(A2:A20,”>0″)
COUNTIF関数は、指定した範囲内で条件に合うセルを数える関数です。
この場合、条件として0より大きいことを示す「>0」を指定しているため、1、10、0.5などは数えられ、0やマイナスの値は除外されます。
条件の比較記号は、数式内でダブルクォーテーションで囲む点が重要です。
「>0」ではなく「>0」とだけ入力したつもりでも、引用符が抜けているとExcelが正しく判断できない場合があります。
0と空白を区別する考え方
0より大きいセルを数える数式では、空白セルは自動的にカウント対象外になります。
また、数値の0も条件に一致しないため、空白と0のどちらも集計結果には含まれません。
ただし、見た目は空白でも、数式によって空文字列が返されているセルには注意が必要です。
たとえば、IF関数で条件に合わないときに「””」を返している場合、そのセルは完全な空白ではなく数式が入ったセルです。
COUNTIF関数で「>0」を指定している限り、空文字列は正の数ではないため通常は数えられません。
一方で、別の関数と組み合わせて件数を確認するときは、セルが空欄に見えることと、本当に空白であることは別だと意識しておくと安心でしょう。
数値が文字列になっている場合
表に「10」や「25」と表示されていても、それが文字列として保存されていると期待どおりに集計できないことがあります。
文字列の数値は、セルの左上に緑色の三角マークが表示されることもあります。
入力元がCSVファイル、外部システム、コピーしたデータなどの場合は、数値が文字列化していないか確認しましょう。
COUNTIF関数で件数が想定より少ないときは、条件式より先にセルの表示形式とデータ形式を確認することが有効です。
数値に変換するだけで、集計結果が正常になるケースも多くあります。
変換する方法としては、警告アイコンから数値へ変換する方法や、VALUE関数を使う方法があります。
貼り付け形式で数値を掛け算する方法もありますが、元データを扱う際はバックアップを取ったうえで作業すると安全です。
条件式と比較演算子の使い分け
続いては、COUNTIF関数で使う条件式と比較演算子を確認していきます。
大なり記号を使う条件指定
「>0」は、0を超える値という意味です。
同じ考え方で「>=0」と指定すれば、0以上のセルを数えられます。
集計したい内容によって、0を含めるかどうかが変わるため、比較演算子の違いを理解しておく必要があります。
| 条件式 | 数える値の例 | 主な利用場面 |
|---|---|---|
| “>0” | 1、2.5、100 | 実績がある件数の確認 |
| “>=0” | 0、1、2.5、100 | マイナス値を除いた件数の確認 |
| “<0” | -1、-20 | 赤字や差異の件数の確認 |
| “<=0” | -1、0 | 未達や未入力に近い状態の確認 |
| “<>0” | -1、1、20 | ゼロ以外の件数の確認 |
「>0」と「>=0」は似ていますが、0を実績として扱うかどうかが異なります。
在庫がある商品を数えるなら「>0」が適しています。
一方、赤字以外の案件を調べるなら「>=0」を使うほうが目的に合うでしょう。
セル参照を使う条件式
比較する基準値を固定せず、別のセルに入力した数値を使うこともできます。
たとえば、D1セルに基準となる数値を入れ、A2からA20のうちD1より大きいセルを数える場合は、次のように記述します。
=COUNTIF(A2:A20,”>”&D1)
「&」は文字列とセル参照をつなぐ役割を持ちます。
この数式では、「>」という比較記号とD1セルの値が結合され、たとえばD1が50なら「>50」という条件になります。
目標値や合格ラインをセルで管理している表では、条件を数式へ直接書かず、基準セルを参照する設計が便利です。
基準値を変更するだけで集計結果が更新されるため、毎月のレポート作成も効率化できます。
小数と日付を扱うときの注意点
COUNTIF関数は小数も比較できます。
たとえば「>0.01」とすれば、0.01を超える数値だけを数えることが可能です。
ただし、計算結果には表示上は0でも、ごく小さな小数が残っていることがあります。
四捨五入して0と表示される値でも、実際には0.000001のような値なら「>0」に一致します。
そのような表では、ROUND関数で桁数を整えた補助列を作る方法が実用的です。
日付もExcel内部では連続した数値として扱われますが、日付の件数を数える場合は日付条件を明示するほうが分かりやすいでしょう。
見た目の表示と内部の数値が一致しないと、COUNTIFの結果が意外な件数になることがあります。
小数点以下の計算結果や日付シリアル値を含むデータでは、表示形式だけで判断しないことが大切です。
COUNTIFS関数による複数条件の判定
続いては、複数の条件を組み合わせて数えるCOUNTIFS関数について確認していきます。
COUNTIF関数とCOUNTIFS関数の違い
COUNTIF関数は、基本的に1つの条件でセルを数えるための関数です。
COUNTIFS関数は、複数の範囲と条件を指定し、すべての条件を満たす行を数えます。
| 関数名 | 指定できる条件 | 数式の特徴 |
|---|---|---|
| COUNTIF | 1条件 | 単一範囲の判定に向く |
| COUNTIFS | 複数条件 | 複数列をまたぐ絞り込みに向く |
たとえば、売上が0より大きい案件だけを数えるならCOUNTIF関数で十分です。
さらに担当者が特定の部署で、かつ売上が0より大きい案件を数えたい場合はCOUNTIFS関数を使います。
条件が増える可能性のある集計表では、COUNTIFS関数を最初から知っておくと、後の修正がスムーズになります。
売上と担当部署を組み合わせる数式
A列に部署名、B列に売上金額が入力されているとします。
営業部に所属し、かつ売上が0より大きい件数を数える数式は次のとおりです。
=COUNTIFS(A2:A100,”営業部”,B2:B100,”>0″)
この数式は、A列が営業部であることと、B列が0より大きいことの両方を満たした行だけを数えます。
条件の順番は、範囲、条件、範囲、条件という組み合わせです。
範囲の行数がそろっていないと正しく動作しないため、A2からA100とB2からB100のように、開始行と終了行を合わせてください。
特にデータを追加した後は、集計範囲が新しい行まで含まれているかを確認しましょう。
期間条件を追加する方法
さらに日付の条件を追加すれば、特定期間の実績だけを数えられます。
A列を部署、B列を売上、C列を受注日とした場合、2026年4月の営業部で売上が0より大きい件数を求める考え方は次のとおりです。
=COUNTIFS(A2:A100,”営業部”,B2:B100,”>0″,C2:C100,”>=”&DATE(2026,4,1),C2:C100,”<“&DATE(2026,5,1))
開始日以上、翌月初日より前という2つの日付条件を使うと、月末の日付や時刻が含まれるデータにも対応しやすくなります。
月末日以下という指定でも集計できますが、時刻付きの日時データがある場合は漏れが出る可能性があります。
期間集計では翌月初日未満という条件指定が、実務では扱いやすい方法の一つです。
集計結果が合わないときの確認項目
続いては、COUNTIF関数やCOUNTIFS関数の結果が想定と異なる場合の確認項目を見ていきます。
範囲指定のずれ
COUNTIF関数の範囲が途中までしか指定されていないと、下に追加したデータは集計されません。
たとえば、元のデータが20行だったためA2からA20を指定し、その後に30行まで追加した場合、A21からA30は数えられない状態です。
定期的に増える一覧表では、Excelのテーブル機能を利用する方法もあります。
テーブル化すると、行を追加した際に数式の対象範囲が広がりやすく、集計漏れの防止につながります。
範囲を列全体のA:Aのように指定する方法もありますが、大量データでは計算負荷に注意が必要でしょう。
エラー値と非表示データ
対象範囲にエラー値があると、表の状態によっては集計や後続の計算に影響することがあります。
VALUEエラーやDIVエラーが含まれている場合は、まずエラーの発生原因を確認してください。
また、フィルターで非表示になっている行も、COUNTIF関数では通常カウント対象に含まれます。
画面上で表示されている行だけを集計したい場合、COUNTIF関数だけでは目的に合わないことがあります。
フィルター後の可視セルだけを数えるには、SUBTOTAL関数やAGGREGATE関数、補助列を使った集計を検討します。
COUNTIF関数はフィルターで隠れた行を自動で除外する関数ではありません。
表示中のデータだけを対象にしたいのか、一覧全体を対象にしたいのかを、集計前に決めておきましょう。
ワイルドカードと文字列条件
COUNTIF関数では、文字列条件にワイルドカードを使えます。
アスタリスクは任意の文字列、疑問符は任意の1文字を表しますが、数値の大小比較とは役割が異なります。
たとえば、特定の文字を含むセルを数える条件と、0より大きいセルを数える条件を混同しないようにしましょう。
文字列として入力された「0以上」という表示を数えたいのか、実際の数値が0より大きいセルを数えたいのかで、必要な数式は変わります。
データの中身が数値か文字列かを見極めることが、条件付きカウントの基本です。
数式バーを確認し、セルの値、表示形式、先頭の引用符の有無を確認すると原因を探しやすくなります。
実務で使える条件付きカウントの応用
続いては、0より大きいセルのカウントを実務の表へ応用する方法を確認していきます。
売上実績のある商品の件数
商品別の売上表では、売上が1件でも発生した商品数を知りたいことがあります。
その場合、売上金額の列に対して「>0」を指定すれば、実績のある商品だけを数えられます。
返品や値引きによりマイナス売上がある表では、単に空欄以外を数える方法では正確な把握ができません。
正の売上、ゼロ売上、マイナス売上を分けて件数化すると、商品の販売状況を立体的に把握できます。
| 確認したい内容 | 条件式の例 | 把握できること |
|---|---|---|
| 売上がある商品数 | “>0” | 販売実績の商品数 |
| 売上がない商品数 | “=0” | 販売がない商品数 |
| マイナス売上の商品数 | “<0” | 返品や調整の発生状況 |
| ゼロ以外の商品数 | “<>0” | 何らかの金額変動がある商品数 |
金額の合計だけでなく件数も並べて見ることで、少数の高額商品に依存している状況も見つけやすくなります。
未処理案件と進捗管理
進捗管理表では、処理件数や対応時間が0より大きい行を完了扱いにするケースがあります。
ただし、0より大きいことだけで完了を判断すると、途中まで作業した案件も含まれる可能性があります。
その場合は、件数列の条件に加えて、ステータス列が完了であることをCOUNTIFS関数で指定するとよいでしょう。
たとえば、A列がステータス、B列が処理件数なら、完了かつ処理件数が0より大きい案件を集計できます。
=COUNTIFS(A2:A100,”完了”,B2:B100,”>0″)
このように、数値条件と文字列条件を組み合わせると、現場の運用に近い集計ができます。
入力ルールが統一されていないと、完了、完了済み、完了 のような表記ゆれで漏れが発生するため、選択肢リストを使うことも有効です。
目標達成者の人数
個人別の実績表では、基準となる目標値を超えた人数を数える場面があります。
目標値をD1セルに置き、実績をB2からB50に入力しているなら、「>」とD1セルを結合したCOUNTIF関数が役立ちます。
目標を達成した人を数えるなら、基準値そのものを含める「>=」を使うことが一般的です。
=COUNTIF(B2:B50,”>=”&D1)
目標未達の人数も確認するなら、「<」とD1セルを組み合わせた数式を別に作成します。
集計欄に達成人数、未達人数、対象人数を並べると、表を開いた瞬間に進捗を判断しやすい構成になります。
条件付き書式で達成者のセルに色を付ければ、数式による集計と視覚的な確認を両立できるでしょう。
まとめ
COUNTIF関数で0より大きいセルを数える基本数式は、=COUNTIF(範囲,”>0″)です。
この数式を使えば、売上が発生した商品、実績のある担当者、在庫がある品目などを手早く集計できます。
複数の条件を同時に満たす行を数えたいときは、COUNTIFS関数を使います。
部署、ステータス、日付、金額などを組み合わせることで、目的に応じた条件付きカウントが可能になります。
集計結果が合わない場合は、条件式だけでなく範囲のずれ、文字列化した数値、表示と内部値の違いを確認してください。
0を含めるか、非表示行を含めるか、基準値をセル参照にするかを事前に整理すれば、Excelの集計表はさらに使いやすくなります。