_基本ExcelVBA

オートフィルタで抽出した件数をカウントする【AutoFilter】【SpecialCells】【ExcelVBA】

抽出件数をカウント

オートフィルタである条件に合致したデータを抽出した後、抽出された件数を知りたい場合があります。

例えば…

「大量にある売上データから〇〇万円以上を売り上げた店舗数を調べたい」
「残業時間が〇時間以上の従業員は何人か調べたい」

といったシチュエーションはよくありますよね。

フィルタ後にSpecialCellsメソッドで可視セルのみを取得すれば、
何件のデータを抽出したのか瞬時にわかるようになります。

※このとき、SpecialCellsメソッド の 引数Type には xlCellTypeVisible を指定してください。

 

何件のデータを抽出したか確認できるサンプルコード

まず、以下の簡単な表をExcelのA1セルにコピーしてください。

商品名個数
みかん5
りんご8
バナナ6
りんご3
りんご7
みかん9
バナナ3
Public Sub Sample()
  Dim cnt As Long

  '「りんご」で絞り込む
  Range("A1").AutoFilter Field:=1, Criteria1:="りんご"

  '可視セルをカウントする
  cnt = Range("A1").CurrentRegion.Resize(, 1).SpecialCells(xlCellTypeVisible).Count
  'タイトルを省くのでマイナス1してイミディエイトに結果を表示
  Debug.Print cnt - 1 & "件"

End Sub

 

注意点

  • 見出し行を省くので、1行分マイナスする必要があります。(上記はイミディエイト表示時)
  • 通常のCountでは非表示分もカウントされるので、SpecialCellsを使うことをお忘れなく。

 

関連記事

コメント

タイトルとURLをコピーしました