【VBA入門】VBAでワークシート関数Countifsを使ってビッグデータから対象人数を求める方法

【VBA入門】VBAでワークシート関数Countifsを使ってビッグデータから対象人数を求める方法

シート内の10万人の大量データから、男性の人数を求めるには、「Countifs」が便利。

みなさん、こんにちは。セルネッツ竹本です。

今回は、「VBAでワークシート関数を活用する方法」をテーマに、解説をしたいと思います。

◆VBAメリットはExcel標準機能を併用してこそ際立つ

Excelには標準機能で便利な関数が盛りだくさん用意されています。

実務でよく登場する関数は、それほど種類は多くないはず。

VLOOKUPやSUMなど定番とも言える関数のほかに、件数を求める「Countif」、「Countifs」があります。

今回は、この両者の違いと、VBAプログラミングによる「実際の書き方」を紹介します。

◆VBAからは「WorksheetFunction」を付与して使います。


冒頭キャプチャの会員データに対して、検索条件を変えてみました。

★【旧】Countif B列が男の人数を求める
◆【新】Counitfs B列が男、かつ、A列に”竹”という文字が含まれている人数を求める

Sub CommandButton1_Click()

Dim S_男性人数1 As Long
Dim S_男性人数2 As Long

'★【旧】Countif (範囲, 検索条件)
S_男性人数1 = WorksheetFunction.CountIf(O_A.Range("B:B"), "男")

Debug.Print S_男性人数1

'★【新】countifs (検索条件範囲1, 検索条件1, [条件範囲 2, 検索条件 2],…)
S_男性人数2 = WorksheetFunction.CountIfs(O_A.Range("B:B"), "男", O_A.Range("A:A"), "**")

Debug.Print S_男性人数2

End Sub

【Point】
VBAから、ワークシート関数を使う場合は、WorksheetFunction. 記述が必要になります。

◆両者の決定的な違いは、Coutifは複数条件に対応していないこと


Countif関数も、Countifs関数も、「特定の条件に一致するセルの個数を返します」が、

Countif関数では、複数条件に対応していません


【背景Point】

◆CountifはExcelバージョン2003時代の旧関数

◆CountifsはExcelバージョン2007から新機能として実装された


そんな背景もあって、大は小を兼ねるという意味でも、古い関数は使わない方が良いでしょう

VBA関数を巧みにつかって、くれぐれも10万件データを数えるプログラミングは行わないようにしましょう。

今回のテーマは、「VBAでワークシート関数を活用する方法」について、解説を行いました。


本記事が、Excel実務の効率化において、ご参考お役立てになれば幸いです。


全国対応!お気軽にお問い合わせください