VBA Countifメソッド ~メソッドの解説と使用例~

VBA Countifメソッド ~メソッドの解説と使用例~

ENGINEER.CLUB編集部

ENGINEER.CLUB編集部

VBAを使って売上表等の集計を行う際には、「Countifメソッド」を使います。

ここでは、基本的な使い方を紹介していきます。


1.Countifメソッドについて

1-1.Countifメソッドとは

指定した範囲内のセルのうち、条件に一致するセルの個数を返します。

1-2.Countifの構文

WorksheetFunction.Countif([セルの範囲], [条件])

以降のVBAでは、こちらの表を使用します。

表1


2.Countifメソッドの使用例

2-1.基本的な使用例

表全体から「モニタ」と書かれたセルの個数を取得

Sub sample01()
    Dim cnt As Integer

    cnt = WorksheetFunction.Countif(Range("A1:D7"), "モニタ")

    MsgBox cnt

End Sub

結果:

結果1


3.特殊な書き方をする場合

3-1.ワイルドカードを使う

3-1-1.前方一致

表全体から「ノート」から始まるセルの個数を取得

'前方一致
Sub sample02()
    Dim cnt As Integer

    cnt = WorksheetFunction.Countif(Range("A1:D7"), "ノート*")

    MsgBox cnt

End Sub

結果:

結果2

3-1-2.後方一致

表全体から「ート」で終わるセルの個数を取得

'後方一致
Sub sample03()
    Dim cnt As Integer

    cnt = WorksheetFunction.Countif(Range("A1:D7"), "*ード")

    MsgBox cnt

End Sub

結果:

結果3

3-1-3.前方後方一致

表全体から「トパ」を含むセルの個数を取得

'前方後方一致
Sub sample04()
    Dim cnt As Integer

    cnt = WorksheetFunction.Countif(Range("A1:D7"), "*トパ*")

    MsgBox cnt

End Sub

結果:

結果4

3-2.比較演算子を使う

D列(値段欄)から「5000超」のセルの個数を取得

Sub sample05()
    Dim cnt As Integer

    cnt = WorksheetFunction.CountIf(Range("D1:D7"), ">5000")

    MsgBox cnt

End Sub

結果:

結果5

3-3.その他の使用例

3-3-1.複数条件を使う場合

下記のように、「countifs」を使うことでセルの範囲と条件を複数設定することができます。

WorksheetFunction.CountIfCountif([セルの範囲1], [条件1], [セルの範囲2], [条件2], …)

例)A社、かつ値段が10万円超

Sub sample06()
    Dim cnt As Integer

    cnt = WorksheetFunction.CountIfs(Range("B1:B7"), "A社", Range("D1:D7"), ">100000")

    MsgBox cnt

End Sub

結果:

結果6

3-3-2.別シートのセルを指定する場合

別シートのセルを参照したい場合は、セル範囲でシート名を指定します。

Sub sample07()
    Dim cnt As Integer

    cnt = WorksheetFunction.CountIf(Worksheets("商品表").Range("C1:C7"), "ノート*")

    MsgBox cnt

End Sub

結果:

結果7


4.最後に

Countifメソッドは、範囲や条件を指定した結果をさらに次の処理へつなげることができます。ぜひ、使いこなしてください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

コメント

公式アカウントLINE限定!ボールドの内定確率が分かる無料診断実施中
公式アカウントLINE限定!
ボールドの内定確率が分かる無料診断実施中