2023年5月10日【ID:0】
【Excel】COUNTA関数の落とし穴と対策
値が入力されているセルの数を数える際に便利な関数としてCOUNTA関数があります。
=COUNTA(値1, [値2], [値3], …)
// 範囲内の空白でないセルの数を返す
この関数を活用して、以下のように対象者の人数を数えることができます。
=COUNTA(E3:E12)
ただ、この関数には落とし穴があります。
以下の場合、なぜか正しく計算されません。
見た目は一切変わっていないのですが、正しく集計できていません。
先ほどの内容との違いは、E列に関して数式で求めているかというものになります。
数式で入力した空白「""」は、空白という文字として扱われてしまい、COUNTAの集計対象になってしまいます。
そのためCOUNTA関数で集計する場合は、数式を活用することができません。
では、数式が使われている場合で正しく集計する方法について2種類で解説していきます。
1.COUNTIF関数で集計する
COUNTIF関数を用いて、特定の値を集計することができます。
=COUNTIF(範囲, 検索条件)
// 指定された範囲で検索条件を満たすセルの数を返す
活用例は以下になります。
=COUNTIF(E3:E12,"〇")
COUNTIF関数で、「値が入力されているセルの数」を数えるように設定することもできますが、COUNTA関数と同様に空白も計算されてしまいます。
=COUNTIF(E3:E12,"<>")
2.COUNTA関数とCOUNTBLANK関数を組み合わせて集計する
COUNTBLANK関数を用いて、対象のセルの数を集計することができます。
=COUNTBLANK(範囲)
// 範囲に含まれる空白のセルの数を返す
活用例は以下になります。
=COUNTA(A3:A12)-COUNTBLANK(E3:E12)
COUNTBLANK関数では、数式により入力された空白セルを含め、値の入力されていないセルの数を返します。
そのため、COUNTA関数で全体の数を数えて、COUNTBLANK関数で空白の数分だけ引いています。
注意点として、数式が入力されていない空白のセルを含む場合は、正しく計算することができません。
そのため、COUNTA関数で参照している範囲は必ず値が入力されている項目を指定しています。