=COUNTIF(B2:B8,"<>")は、B2:B8のうち空白でないセルを数えます。<>は「等しくない」という意味で、後ろに何もなければ空のセルと比べることになります。=COUNTA(B2:B8)も同じ数になります。
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Phone | Count | Result | ||
| 2 | Ana | ana@mail.com | 555-0101 | Emails, COUNTIF | 5 | |
| 3 | Ben | 555-0102 | Emails, COUNTA | 5 | ||
| 4 | Cara | cara@mail.com | Missing emails | 2 | ||
| 5 | Dan | dan@mail.com | 555-0104 | Phones | 4 | |
| 6 | Eva | Rows | 7 | |||
| 7 | Finn | finn@mail.com | 555-0106 | |||
| 8 | Gus | gus@mail.com |
7件の連絡先のうち5件にメールアドレスがあるので、F2とF3はどちらも5を表示し、COUNTBLANKは足りない2件を数えます。入力済みと空白の件数を足すと、必ずF6の行数になります。B3にメールアドレスを入力すると、F2が1増えてF4が1減ります。
COUNTIFの空白以外とCOUNTAの違い
1つの範囲なら、=COUNTIF(B2:B8,"<>")と=COUNTA(B2:B8)は同じセルを数えます。空でないものすべてで、数値、日付、TRUE/FALSE、エラー値も含みます。COUNTAのほうが短く書けます。"<>"の形は2つ目の条件が必要になったときのためにあります。COUNTAは条件を受け取れませんが、COUNTIFSは受け取れるからです。
COUNTは別の関数で、数値と日付しか数えないので、名前の列では0になります。3つの比較はCOUNTとCOUNTAにあります。
空白以外の反対は""です。=COUNTIF(B2:B8,"")はCOUNTBLANKと同じように空のセルを数えます。
COUNTIFSで空白以外とほかの条件を組み合わせる
"<>"をCOUNTIFSの条件の1つに使います。下では、出荷日があれば注文が出荷済みという意味です。
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Order | Shipped | Condition | Count | |
| 2 | North | A-101 | 2026-01-08 | North, shipped | 2 | |
| 3 | South | A-102 | North, not shipped | 1 | ||
| 4 | North | A-103 | 2026-02-06 | Any region, shipped | 3 | |
| 5 | East | A-104 | 2026-02-20 | Order and date filled | 3 | |
| 6 | South | A-105 | ||||
| 7 | North | A-106 |
F2は日付のあるNorthの注文2件を、F3は日付のない1件を数えます。F5は2つの列に"<>"を指定しているので、両方が入力済みの行を数えます。同じ条件はSUMIFSやAVERAGEIFSでも使えます。=SUMIFS(D2:D7,C2:C7,"<>")なら、出荷済みの行についてだけ金額のD列を足します。
空に見えるだけのセル
スペースが入ったセルは空に見えますが文字列が入っていて、"<>"とCOUNTAはそれを数えます。ほかのシステムから貼り付けたデータや、スペースを入力して「消した」セルで起こります。スペースを取り除いて長さを調べれば、目に見える内容のあるセルを数えられます。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Note | Count | Result | |
| 2 | Ana | call back | COUNTA | 4 | |
| 3 | Ben | Visible content | 2 | ||
| 4 | Cara | Space in B3? | 1 | ||
| 5 | Dan | paid | |||
| 6 | Eva |
B3にはスペースが1つ、B6には2つ入っています。COUNTAはそれらを2つの本当のメモと一緒に数えて4を表示します。SUMPRODUCT版は各セルのスペースを取り除き、何か残るものだけを数えるので2です。セル自体をきれいにするには、選択してDeleteキーを押すか、作業列でTRIMを使います。検索と置換ですべてのスペースを何もない文字に置き換えると、「call back」も「callback」になってしまいます。
空の文字列を返す数式
=IF(C2>0,C2,"")のような数式は、条件がFALSEのとき何も表示しませんが、セルは空ではありません。結果が空の文字列になる数式が入っているからです。数える関数によって扱いが違います。A2:A6にApple、""を返す数式、空のセル、5、Pearが入っているとき、Excelの結果は次のとおりです:
=COUNTA(A2:A6) 4 counts the "" formula
=COUNTIF(A2:A6,"<>") 4 counts the "" formula
=COUNTBLANK(A2:A6) 2 counts the "" formula as blank
=COUNTIF(A2:A6,"") 2 counts the "" formula as blank
=SUMPRODUCT(--(LEN(A2:A6)>0)) 3 counts only visible content
=COUNTIF(A2:A6,"?*") 2 counts text of at least one character
つまり数式のセルは空白としても空白以外としても数えられ、COUNTAとCOUNTBLANKを足すとセルの数より多くなります。このような数式で埋まった列では、何かを表示しているセルだけを数える=SUMPRODUCT(--(LEN(A2:A6)>0))を使います。2つ目の条件を付けるなら=SUMPRODUCT((B2:B6="North")*(LEN(A2:A6)>0))です。
練習: 空白以外と条件
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | City | Phone | Count | Result | |
| 2 | Ana | Paris | 555-0101 | Paris with phone | ||
| 3 | Ben | Lyon | 555-0102 | |||
| 4 | Cara | Paris | ||||
| 5 | Dan | Paris | 555-0104 | |||
| 6 | Eva | Lyon | ||||
| 7 | Finn | Nice | 555-0106 | |||
| 8 | Gus | Paris |
やってみよう: Parisの連絡先のうち、C列に電話番号があるものを数えてください。数式はF2に書きます。
どの数式を使うか
| 数えたいもの | 数式 |
|---|---|
| 1つの範囲の入力済みのセル | =COUNTA(B2:B8) |
| 入力済みのセルと別の条件 | =COUNTIFS(A2:A8,"North",B2:B8,"<>") |
| 2つの列が両方入力済みの行 | =COUNTIFS(B2:B8,"<>",C2:C8,"<>") |
スペースと""の数式を除いた、目に見える内容のあるセル | =SUMPRODUCT(--(LEN(TRIM(B2:B8))>0)) |
| 入力済みの文字列のセルだけ | =COUNTIF(B2:B8,"?*") |
| 空のセル | =COUNTBLANK(B2:B8) |
数えるのではなく1つのセルを調べるなら、=B2<>""はB2に何か表示されているときにTRUEを返し、=ISBLANK(B2)はB2が数式も入っていない本当の空のときだけTRUEを返します。
よくある質問
COUNTIFの"<>"はCOUNTAと同じですか?
1つの範囲なら同じです。=COUNTIF(B2:B8,"<>")と=COUNTA(B2:B8)は同じセル(文字列、数値、日付、TRUE/FALSE、エラー)を数えます。"<>"の形は、ほかの条件と並べられるCOUNTIFSのためにあります。
COUNTIFの"<>"はどういう意味ですか?
<>は「等しくない」で、後ろに何もなければ空のセルと比べることになります。つまり"<>"は「空白でない」、"<>North"は「Northと等しくない」という意味です。
空白でも0でもないセルを数えるには?
=COUNTIFS(B2:B8,"<>",B2:B8,"<>0")を使います。"<>0"だけだと空のセルも数えます。空のセルは0と等しくないからです。"<>"を加えると空のセルが除かれます。
COUNTAが空に見えるセルを数えるのはなぜですか?
そのセルは空ではありません。スペースか、空の文字列""を返す数式が入っています。目に見える内容のあるセルだけを数えるには=SUMPRODUCT(--(LEN(TRIM(B2:B8))>0))を使います。