【エクセル】セルの個数を数える方法!条件指定も可!VBAへの組み込みまで!

f:id:yshgs_elec:20201010215232j:plain

「データが記入されているセルの個数を数えたい。」

「その中でも、ある文字(数字)が記入されているセルの個数を数えたい。」

「何も記入されていないセルの個数を数えたい。」

この記事ではこんな悩みを一瞬で解決します。

 

エクセルにはもともと、

■空白ではないすべてのセルの個数を数える(COUNTA関数)

■数字が入っているセルの個数を数える(COUNT関数)

■指定した文字(数字)と一致するセルの個数を数える(COUNTIF関数)

■指定領域にある空白のセルの個数を数える(COUNTBLANK関数)

これらの関数があらかじめ備わっています。

 

この記事では、

〇セルの数を数える4つの関数の使いかた説明

〇それらの関数をVBAで使用する方法

についてご紹介していきます。

 

初心者に寄り添い、画像多めで説明していきますので、ぜひ最後までごらんください。

スポンサーリンク

はじめに

まずはじめにこの記事で扱う題材についてご紹介します。

 

今回は以下のように、A列に文字が、B列に数字が入っています。

これらの文字と数字が混在する領域の中から、冒頭に紹介した関数を使って、セルの個数を数えていきます。

セルデータを数える際に使用するサンプルデータ

ぜひあなたもエクセルを開き、一緒に練習してみましょう。

 

それでは本題に入っていきます。

スポンサーリンク

(空白ではない)すべてのセルを数える!COUNTA関数

まずはじめに、指定した領域内にある、空白ではないすべてのセルを数える方法についてご紹介します。

 

基本的な使い方は以下の通りです。

=COUNTA(【数えたい領域】)

 

実際の使用例は以下の画像のようになります。

COUNTA関数でデータ数をカウントした結果

しっかりと =COUNTA(数えたい領域) という形になっていますね。

 

また、この関数を使用した結果は20となっており、A列とB列それぞれに10個ずつはいっているデータの個数をすべて数えてくれていることがわかると思います。

 

ここまでが、すべてのセルの個数を数えるCOUNTA関数でした。

 

スポンサーリンク

数字のセルだけを数える!COUNT関数

次は、指定した領域内にある、数字が記入されているセルだけを数える方法についてご紹介します。

 

基本的な使い方は以下の通りです。

=COUNT(【数えたい領域】)

 

実際の使用例は以下の画像のようになります。

※先ほどのCOUNTA関数から最後のAを取り除いただけですね。

COUNT関数で数字のセルだけを数えた結果

この関数を使用した結果は10となっており、数字が記入されているB列のデータだけを数えてくれていることがわかると思います。

※ちなみに文字のセルだけを数えたい場合は、COUNTA関数からCOUNT関数の結果を引いてあげればいいですね。

 

ここまでが、すべてのセルの個数を数えるCOUNTA関数でした。

 

スポンサーリンク

指定した文字と一致するセルを数える!COUNTIF関数

次は、指定した領域内で、設定した条件に当てはまっているセルだけを数える方法についてご紹介します。

 

基本的な使い方は以下の通りです。

=COUNTIF(【数えたい領域】,【指定したい文字(数字)】)

 

実際の使用例は以下の画像のようになります。

 

まずは文字を指定する場合です。今回は a という文字を数えてみます。

文字を指定する場合は、以下のように ” で指定したい文字を挟んであげます。

COUNTIF関数で条件にあてはまるセルだけを数えた結果

 

また、数字を指定したい場合の使い方は以下のようになります。

数字の場合はそのまま指定したい数字を記入すればOKです。

ここでは 1 が記入されているセルを数えています。

COUNTIF関数で条件にあてはまるセルだけを数えた結果

A列、B列には a という文字も 1 という数字もそれぞれ2回登場していますので、きちんとこれらの関数の使用結果は2になっていますね。

 

ここまでが、すべてのセルの個数を数えるCOUNTIF関数でした。

 

スポンサーリンク

空白のセルを数える!COUNTBLANK関数

最後は指定した領域内に存在する空白のセルを数える方法についてです。

 

基本的な使い方は以下の通りです。

=COUNTBLANK(【数えたい領域】)

 

実際の使用例は以下の画像のようになります。

COUNTBLANK関数で空白のセルを数えた結果

 

今回指定した領域の中には空白セルは含まれておりませんので、結果はゼロになってくれていますね。

 

上の3つに比べると使用頻度は高くないと思いますが、念のため覚えておきましょう。

 

というわけでセルの数を数える方法4つをご紹介しました。

 

スポンサーリンク

VBAへの組み込み方法

最後にこれらの関数をVBA上で使用する方法についてご紹介していきます。

 

早速ですが、以下がここまでにやってきたことと全く同じことを再現するVBAコードです。

Sub count_cells()
    '空白ではないすべてのセルを数える
    Cells(1, 3) = WorksheetFunction.CountA(Range(Cells(1, 1), Cells(10, 2)))
    '数字が入っているセルだけを数える
    Cells(1, 4) = WorksheetFunction.Count(Range(Cells(1, 1), Cells(10, 2)))
    '指定した文字と一致するセルだけを数える
    '文字指定の場合
    Cells(1, 5) = WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(10, 2)), "a")
    '数値指定の場合
    Cells(1, 5) = WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(10, 2)), 1)
    '空白のセルだけを数える
    Cells(1, 6) = WorksheetFunction.CountBlank(Range(Cells(1, 1), Cells(10, 2)))
End Sub

 

基本的には=WorksheetFunction.をそれぞれの関数の前につけ、その後ろに数えたい領域を指定してあげているだけですね。

※VBAでの領域指定方法がわからないという方は以下の記事を参考にしてみてください。

www.higashisalary.com

 

このコードを実行すると以下のような結果が得られており、前半に紹介した内容と完全に一致していることがわかると思います。

f:id:yshgs_elec:20210204220515j:plain

 

非常に簡単ですので、ぜひ覚えておきましょう。

※ただしこの場合、セル内部は数字のみになっており、数式は残りませんので、ご注意ください。

スポンサーリンク

おわりに

というわけで今回はセルの数を数える方法4つをご紹介していきました。

 

似たような関数で覚えにくいとは思いますが、知っておくと便利なことが多いので、ぜひこのスキルをマスターしておきましょう!

 

このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。

■業務の生産性を上げたい。

■早く帰って子供と遊びたい。

こんな人はぜひ他の記事も読んでみてください。

また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。

私にわかる範囲であればご協力いたしますので。(もちろん無料です。)

最後に・・・

このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

Twitterもやっていますので、興味があれば覗いてみてください。

それではまた!!

コメント

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