アクセス上位ページ
 
最近の更新内容

Excel VBA ≫ 6.ワークシート関数 - 特徴と使用例(1)-c.ワークシート関数によるカウント処理

【ページ内リンク】

ワークシート関数によるカウント処理

このページではカウント処理に関係する CountCountACountBlankCountIfCountIfs 関数について説明します。



Count、CountA、CountBlank 関数

Count 関数は引数に指定した範囲における数値の個数をカウントします。
CountA 関数は入力済みの個数をカウントします。
CountBlank 関数はブランクセルの個数をカウントします。

※入力済みとは、スペースや数式が入力されたセルも含みます。
※ブランクセルとは、未入力のセル以外に、数式により空白文字列("")が返ってくるセルも含みます。

  • 【構文】
    WorksheetFunction.Count( 範囲1 [, 範囲2…] )
    WorksheetFunction.CountA( 範囲1 [, 範囲2…] )

      【戻り値】 倍精度浮動小数点型 (Double)

  • 引数名 省略 説明
    範囲 カウント対象のセル範囲(レンジオブジェクト)または配列を指定します。
         ※…1つ目は省略不可。2つ目以降は任意。

  • 【構文】
    WorksheetFunction.CountBlank( 範囲 )

      【戻り値】 倍精度浮動小数点型 (Double)

  • 引数名 省略 説明
    範囲 × カウント対象のセル範囲(レンジオブジェクト)を指定します。


  • 使用例
  • 以下のマクロはワークシート上の数値、数式、文字列、ブランクを含むセル範囲を対象として、 数値セル、入力済みセル、ブランクセルの個数をそれぞれカウントする例です。
    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セルは空白文字列を返す数式が入力されています。 数値、文字列、ブランクを含むテストデータ <実行結果(イミディエイトウィンドウ)>
    数値セルの個数 = 4
    入力済セルの個数 = 9
    ブランクセルの個数 = 2
    


CountIf 関数

CountIf 関数は引数に指定したセル範囲のうち、1つの条件に合致するセルの個数を返します。

  • 【構文】
    WorksheetFunction.CountIf( 範囲, 条件 )

      【戻り値】 倍精度浮動小数点型 (Double)


  • 引数名 省略 説明
    範囲 × カウント対象のセル範囲(レンジオブジェクト)を指定します。
    条件 × カウント条件を指定します。 条件の中には < > などの記号や、 ?(任意の一文字) や *(任意の文字列) などのワイルドカードを使うことができます。 条件の指定方法は条件文の書き方をご覧ください。


    以下のマクロはワークシート上にある売上表において、1月売上150万以上の店舗数をカウントする例です。
    Sub sample_wf013_02()
        Dim cnt As Long
    
        '1月売上150万以上の店舗数
        cnt = WorksheetFunction.CountIf(Range("B4:B13"), ">=150")
        Debug.Print "店舗数 = " & cnt
    End Sub
    
    ⇒ サンプルマクロ集 へ

    <データ>
    下図の赤枠点線内が条件に合致したセル 全店舗1〜3月分売上表 <実行結果(イミディエイトウィンドウ)>
    店舗数 = 5
    


CountIfs 関数

CountIfs 関数は引数に指定したセル範囲のうち、複数の条件すべてに合致するセルの個数を返します。

  • 【構文】
    WorksheetFunction.CountIfs( 範囲1, 条件1, [, 範囲2, 条件2 …] )

      【戻り値】 倍精度浮動小数点型 (Double)


  • 引数名 省略 説明
    範囲 カウント対象のセル範囲(レンジオブジェクト)を指定します。
    条件 カウント条件を指定します。 条件の中には < > などの記号や、 ?(任意の一文字) や *(任意の文字列) などのワイルドカードを使うことができます。 条件の指定方法は条件文の書き方をご覧ください。
         ※…1つ目は省略不可。2つ目以降は任意。

  • 複数の条件を指定した使用例
  • 以下のマクロはワークシート上にある売上表において、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
    

    <データ>
    下図の赤枠点線内がすべての条件に合致したセル 全店舗1〜3月分売上表 <実行結果(イミディエイトウィンドウ)>
    店舗数 = 2
    


カテゴリ内ページ



Page
Top