OfficeType

VBA~WorksheetFunction.DCountAメソッド~Excel

VBAで指定した範囲内において、条件を満たした項目をカウントしたい場合はWorksheetFunction.DCountAメソッドを使います。

書き方

WorksheetFunction.DCountA(データベース, フィールド, 検索条件)

データベースは見出しを含めた表全体を指定します。今回の場合はA1:C7になります。

フィールドはカウントしたい項目の列の見出しを指定します。今回は条件を満たす人をカウントしたいのでA列の見出し名前を指定するのでA1を指定します。

検索条件は条件を表す為のセル範囲になります。今回の場合はE1:F3になり、まずデータベースで指定した範囲の条件にしたい列の見出しと同じ名前の見出しを入力しその下に抽出したい条件を入力します。この例では班と性別を条件に指定していて、その下に1班男性、その下に3班女性と入力してあります。同じ行がANDを意味して各列がORを意味しているので、この例だと(1班AND男性)か(3班AND女性)の条件にあてはまる人の数を表示します。

例として下の画像において下のコードを実行すると1班の男性を満たすのはAさん一人で、3班の女性を満たすのはFさん一人なので条件を満たす人は2人なのでE6に2が表示されます。

image-01

Sub test1()

Range("E6") = WorksheetFunction.DCountA(Range("A1:C7"), Range("A1"), Range("E1:F3"))

End Sub

image-02