このページではカウント処理に関係する Count、CountA、CountBlank、CountIf、CountIfs 関数について説明します。
Count、CountA、CountBlank 関数
Count 関数は引数に指定した範囲における数値の個数をカウントします。
CountA 関数は入力済みの個数をカウントします。
CountBlank 関数はブランクセルの個数をカウントします。
※入力済みとは、スペースや数式が入力されたセルも含みます。
※ブランクセルとは、未入力のセル以外に、数式により空白文字列(””)が返ってくるセルも含みます。
引数名 | 省略 | 説明 |
---|---|---|
範囲 | ※ | カウント対象のセル範囲(レンジオブジェクト)または配列を指定します。 |
引数名 | 省略 | 説明 |
---|---|---|
範囲 | × | カウント対象のセル範囲(レンジオブジェクト)を指定します。 |
さまざまなセルのカウント例
以下のマクロはワークシート上の数値、数式、文字列、ブランクを含むセル範囲を対象として、数値セル、入力済みセル、ブランクセルの個数をそれぞれカウントする例です。
Sub sample_wf013_01()
Dim cnt1 As Long
Dim cnt2 As Long
Dim cnt3 As Long
Dim myRange As Range
Set myRange = Range("A1:A10")
cnt1 = WorksheetFunction.Count(myRange)
cnt2 = WorksheetFunction.CountA(myRange)
cnt3 = WorksheetFunction.CountBlank(myRange)
Debug.Print "数値セルの個数 = " & cnt1
Debug.Print "入力済セルの個数 = " & cnt2
Debug.Print "ブランクセルの個数 = " & cnt3
End Sub
<データ>
A3セルには数式が入力されています。
A4セルには半角スペースが1つだけ入力されています。
A5セルには全角スペースが1つだけ入力されています。
A8セルは未入力です。
A9セルは空白文字列を返す数式が入力されています。
CountIf 関数
CountIf 関数は引数に指定したセル範囲のうち、1つの条件に合致するセルの個数を返します。
引数名 | 省略 | 説明 |
---|---|---|
範囲 | × | カウント対象のセル範囲(レンジオブジェクト)を指定します。 |
条件 | × | カウント条件を指定します。 条件の中には < > などの記号や、 ?(任意の一文字) や *(任意の文字列) などのワイルドカードを使うことができます。 条件の指定方法は条件分の書き方 をご覧ください。 |
条件付きのカウント例
以下のマクロはワークシート上にある売上表において、1月売上150万以上の店舗数をカウントする例です。
Sub sample_wf013_02()
Dim cnt As Long
'1月売上150万以上の店舗数
cnt = WorksheetFunction.CountIf(Range("B4:B13"), ">=150")
Debug.Print "店舗数 = " & cnt
End Sub
テスト用の売上表です。下図の赤枠点線内が条件に合致したセルになります。
CountIfs 関数
CountIfs 関数は引数に指定したセル範囲のうち、複数の条件すべてに合致するセルの個数を返します。
引数名 | 省略 | 説明 |
---|---|---|
範囲 | ※ | カウント対象のセル範囲(レンジオブジェクト)を指定します。 |
条件 | ※ | カウント条件を指定します。 条件の中には < > などの記号や、 ?(任意の一文字) や *(任意の文字列) などのワイルドカードを使うことができます。 条件の指定方法は条件分の書き方 をご覧ください。 |
複数の条件を指定したカウント例
以下のマクロはワークシート上にある売上表において、Cグループ店舗のうち、1月売上150万以上の店舗数をカウントする例です。
Sub sample_wf013_03()
Dim cnt As Long
'Cグループ店舗のうち、1月売上150万以上の店舗数
cnt = WorksheetFunction.CountIfs(Range("A4:A13"), "C*", _
Range("B4:B13"), ">=150")
Debug.Print "店舗数 = " & cnt
End Sub
前の sample_wf013_02 で使用したものと同じです。下図の赤枠点線内がすべての条件に合致したセルになります。