• ベストアンサー

COUNTA関数について

表にCOUNTAとCOUNTIFを設定し、その結果をそれぞれ分母、分子としてデータ個数の割合を出すようにしました。 対象範囲はA2:A3000としており、空白セルに新たなデータが入ったり不要で削除したりした場合、分子となるCOUNTIFからの結果は増減するのですが、分母としているCOUNTAからの結果は関数入力時のまま変動しません。これが当たり前でしようか? データの数が増減したらカウント個数も増減させるには、別の方法が必要でしょうか。 バージョンは2007で、セルの書式は標準、数えるデータは文字で、現在入力されているセルは1634個です。(実験として数行をコピーして挿入するとその分増加はします)

質問者が選んだベストアンサー

  • ベストアンサー
  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.1

対象範囲に長さゼロの文字列""が混じっているのではありませんか? COUNTA関数は長さゼロの文字列""もカウントしてしまうため、 見た目の空白/非空白と結果が一致しないことがあります。  COUNTA(A2:A3000) としている部分を  COUNTIF(A2:A3000,"?*") あるいは  (ROWS(A2:A3000)-COUNTBLANK(A2:A3000)) としてみてください。 ---------------------------------------------- ●COUNTIF(A2:A3000,"?*") 「1文字以上の任意の文字列が入っているセルの数」 ●ROWS(A2:A3000) 「対象範囲の行数」 ●COUNTBLANK(A2:A3000) 「空白セルまたは長さゼロの文字列""が入っているセルの数」 以上ご参考まで。

enimy
質問者

補足

早速のご回答ありがとうございます。 第一案にて修正したところデータの増減を反映するようになりました。 対象データの個数が1441となり大幅に相違していたようです。 そこで、この1441は空白セルもカウントしているようで分子となる個々の合計と一致しません。(試験したところ、一度入力をしてスペースで消去したものはそのままカウントされています) 誤った消去をしてしまったセルをカウントしないようにする方法はあるでしょうか。または空白に見えても何かが入っているセルを見つけ出すことは可能ですか。 お手数ですが策があればご教示ください。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

COUNTA関数の最大の欠点は例えばセルに式が入力されており、その結果が空白になっているようなセルがある場合にはカウントされてしまうことです。 次のいずれかの式を使って対応してください。 =COUNT(A2:A3000)+COUNTIF(A2:A3000,">*") または =SUMPRODUCT((LEN(A2:A3000)>0)*1)

enimy
質問者

お礼

何が一番適しているか、いろいろな方法を試してみたいと思います。 ありがとうございました。

回答No.2

>スペースで消去したものはそのまま~ 対象セル範囲を選択して[Ctrl]+[H]置換 スペース を(未入力)へ置換する スペースが下手に置換されるとまずい場合、オプションを開いて応用すること 見つけ出すだけでよいなら[Ctrl]+[F]検索です

enimy
質問者

お礼

対象となるセルは30程度のハズですので、検索ができれば手作業で削除してみます。ありがとうございました。

関連するQ&A