データの件数を数えるCOUNTA関数とは
COUNTA関数の使い方とは
<目次>
例えば「いま顧客リストに何人分のデータがあるか」と言ったようなデータの「件数」を出すのがCOUNTA関数です。
使い方は極めてシンプルで、括弧内に指定した範囲のデータの数、つまり何かしら値が入力されたセルの数を数えます。例えば、次の式であれば、A2セルからA10セルの範囲において、データがいくつあるかを数えます。
=COUNTA(A2:A10)
このように極めてシンプルな関数ではあるのですが、実務で使うにはちょっとしたコツがあります。
例えば次のシートでA列に何人分の名前があるかというデータ件数をC2セルに出したい場合。
氏名データの例
この場合、
=COUNTA(A2:A10)
のように、範囲[A2:A10]を引数として指定される方がほとんどだと思います。
しかしこのような範囲指定の式だと、この名簿に名前が新たに追加されたら……つまりデータ件数が変わったら、また範囲を変えて式を直さなければならなくなってしまいます。
そのような手間をなくしてメンテナンス性がよい式にするには、範囲指定を「列全体」で行うという考え方が極めて大切になります。
ただし、このシートでA列全体を数える範囲とすると、A1セルの「氏名」という項目名も含めて数えてしまいます。なのでここでは、「A列全体のデータ数から1を引く」という、次のような式を使いましょう。
=COUNTA(A:A)-1
C2セルに式を入力
この方法であれば、A列のデータが何行分入っていようと、この式を変更することなくデータ件数をカウントすることができるということです。
COUNT関数との違いは数値と文字列の扱い
よく似た関数にCOUNT関数というものがあります。COUNTA関数は指定した範囲で数値だろうが文字列だろうが、何かしらデータが入力されているセルの数を数えるのに対して、COUNT関数は「数値が入ったセルの数のみカウントする」関数です。日付が入ったセルも、日付データの実体はシリアル値という数値なのでCOUNT関数でカウントされます。つまり文字列のセルは数えない、ということです。先ほどのシートのように、文字列が入力された範囲のデータ件数を数えようとCOUNT関数を使ったのだが「0」という結果になってしまうのはなぜかというご質問はかなり頻繁に頂きます。実務での必要性という点では、COUNTA関数のみ覚えておけばほぼ問題ないと言えます。
COUNTA関数では空白のセルをカウントする場合も
もう一つCOUNTA関数とCOUNT関数には違いがあります。何も入力されていない空白セルについてはCOUNTA関数もCOUNT関数も同様に、そのセルはカウントしません。しかし関数式の結果として見た目は空白になっているセルについては、COUNTA関数はそのセルをカウントしますが、COUNT関数はカウントしないという違いがあります。
例えばA1セルに
=""
という式を入力して、数式の結果として空白になっている状態で実験します。
この時、どこかのセルに
=COUNTA(A1)
と入力すると、そのセルには「1」が出ますが、
=COUNT(A1)
と入力すると、そのセルには「0」が出ます。
これが、「数式の結果として空白になっているセルはCOUNT関数は数えない」ということです。数式が入力されているセル範囲でデータ件数を数える時、式の結果として空白になっているセルはカウントから除外したい、という時はCOUNT関数を使いましょう。
その他のセル個数カウント系関数の種類
- COUNTBLANK関数
- COUNTIF関数
=COUNTIF(A:A,"○")
という式で出すことができます。
関連記事:ExcelのCOUNTIF関数で条件に合うデータの個数を数える
- COUNTIFS関数
=COUNTIFS(A:A,">=30",A:A,"<80")
COUNTIFS関数は
=COUNTIFS(範囲1,条件1,範囲2,条件2…)
という具合に、指定範囲と条件のセットを次々に複数組みこんでいくことができるというものです。範囲指定と条件のセットは127組まで指定できます。
【関連記事】