シート内の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実務の効率化において、ご参考お役立てになれば幸いです。