COUNTIFで空白以外を数える方法|条件の書き方と、数が合わないときの対処法

COUNTIFで空白以外を数える方法のサムネイル エクセル

Excelで「空白ではないセルがいくつあるか」を数えたいときは、COUNTIF関数の条件に "<>" を指定します。提出物の提出状況や出欠の記入済みの数など、「入力済みの件数」を知りたい場面でよく使います。

この記事では、基本の式の書き方を図で説明したうえで、「数えたはずなのに数が合わない」ときの原因と対処法まで解説します。

=COUNTIF(B2:B7,"<>")

これだけで、B2からB7のうち、何か入力されているセルの数が求められます。

COUNTIFで空白以外を数える基本の式

下の表は、提出物の提出日を記録したものです。提出日が入っている人数を、D3のセルに表示します。

COUNTIFで空白以外を数える式。範囲B2:B7と条件"<>"の2つの引数を色分けして解説した図

式の意味

COUNTIF関数は「範囲」と「条件」の2つを指定して、条件に合うセルの数を数える関数です。

  • ① 範囲(B2:B7):数えたいセルの範囲です。この例では「提出日」の列を選んでいます。
  • ② 条件(”<>”):「<>」は「〜ではない」という意味です。「何も入っていないセルではない」、つまり空白以外を数えます。

条件はダブルクォーテーション「”」で囲み、「<」「>」も含めてすべて半角で入力してください。全角で入力すると、正しく数えられません。

入力の手順

  1. 結果を表示したいセル(例:D3)をクリックします。
  2. 「=COUNTIF(」と入力します。
  3. 数えたい範囲(例:B2:B7)をドラッグして選び、続けて「,」(カンマ)を入力します。
  4. 「”<>”」と入力し、「)」で閉じて Enter キーを押します。

図の例では、提出日が入っている4人分が数えられ、「4」と表示されます。

数が合わないときの原因と対処法

COUNTIFで空白以外を数えたのに、見た目の件数より多くなってしまうことがあります。原因は、見た目は空白でも、Excelが「空白ではない」と判断しているセルが混ざっていることです。

COUNTIFの空白以外で数が合わない例。スペースだけのセルと数式の空欄が数えられる様子と、SUMPRODUCTでの対処

原因1:スペースだけが入っているセル

セルに半角や全角のスペースだけが入っていると、見た目は空白でも、Excelは「文字が入っている」と判断します。ほかのデータをコピーして貼り付けたときや、入力を消したつもりでスペースが残ったときに起こりやすい現象です。

原因2:数式の結果が空(””)のセル

たとえば =IF(C5="","",C5) のように、「条件に合わなければ空にする」数式が入っているセルは、画面上は空白に見えても、数式が入っているため「空白ではない」ものとして数えられます。

対処法:SUMPRODUCT関数とTRIM関数を使う

スペースや数式の空欄を除いて、見た目どおりの件数を数えたいときは、次の式を使います。

=SUMPRODUCT(--(TRIM(B2:B7)<>""))
  • TRIM(B2:B7):セルの前後にある余分な半角スペースを取り除きます。
  • <>"":結果が「空ではない」かどうかを、TRUEかFALSEで判定します。
  • --:TRUEを1、FALSEを0に変換します。
  • SUMPRODUCT:変換した1と0を合計します。

TRIM関数が取り除くのは半角スペースだけです。全角スペースが混ざっている可能性があるときは、次のように全角スペースを半角スペースに置き換えてから判定します。

=SUMPRODUCT(--(TRIM(SUBSTITUTE(B2:B7," "," "))<>""))

また、数えたいセルが文字(テキスト)だけなら、=COUNTIF(B2:B7,"?*") という書き方もあります。「1文字以上の文字」にだけ一致するため、数式の空欄は数えません。ただし、数値や日付は数えられないので、提出日のように日付が入る列には向きません。

COUNTA・COUNTBLANKとの違い

空白に関する数え方には、COUNTIF以外にもCOUNTA関数とCOUNTBLANK関数があります。目的に合わせて選びましょう。

関数数えるもの向いている場面
=COUNTIF(範囲,"<>")空白以外のセルほかの条件と組み合わせたいとき(COUNTIFSに広げやすい)
=COUNTA(範囲)空白以外のセル空白以外を数えるだけで、条件が不要なとき
=COUNTBLANK(範囲)空白のセル未入力の件数を数えたいとき

なお、COUNTAもスペースだけのセルや数式の空欄を「空白ではない」と数えるため、数が合わなくなる点はCOUNTIFと同じです。

空白のセルだけを数えたいとき

未入力のセルを数えたいときは、COUNTBLANK関数を使うのが簡単です。

=COUNTBLANK(B2:B7)

最初の図の表なら、未入力は鈴木さんと伊藤さんの2人なので「2」になります。=COUNTIF(B2:B7,"") でも同じように数えられます。どちらも、数式の結果が空(””)のセルは「空白」として数える点に注意してください。

ほかの条件と組み合わせる(COUNTIFS)

「提出日が入っていて、かつ1組の人数」のように、条件を2つ以上にしたいときは、COUNTIFS関数を使います。C列にクラスが入力されているとすると、次の式になります。

=COUNTIFS(B2:B7,"<>",C2:C7,"1組")

範囲と条件を、組にして続けて書くのがポイントです。「B2:B7が空白以外」かつ「C2:C7が1組」を満たすセルの数が求められます。

よくある質問

Googleスプレッドシートでも使えますか?

はい。=COUNTIF(B2:B7,"<>") という基本の書き方は、Googleスプレッドシートでも同じです。

「”<>”」のダブルクォーテーションを付け忘れるとどうなりますか?

=COUNTIF(B2:B7,<>) のように囲まずに入力すると、数式にエラーがあるというメッセージが表示され、確定できません。条件の「<>」は、必ず「”」で囲んで入力してください。

結果が「0」になってしまいます。

範囲の選び間違いがないか、確認してみましょう。範囲が空のセルだけになっていると、0になります。式は合っているのに数が少ないときは、範囲がデータの最後の行まで届いているかを見直してください。

まとめ

  • COUNTIFで空白以外を数えるときは、条件に "<>" を指定します。
  • 式は =COUNTIF(範囲,"<>") です。「”」も「<>」も半角で入力します。
  • スペースだけのセルや、数式の結果が空のセルは「空白ではない」と数えられるため、見た目と数が合わなくなることがあります。
  • 見た目どおりの件数を数えたいときは、=SUMPRODUCT(--(TRIM(範囲)<>"")) を使います。
  • 未入力を数えたいときは COUNTBLANK 関数、複数の条件を組み合わせたいときは COUNTIFS 関数が便利です。

コメント

タイトルとURLをコピーしました