【ExcelVBA】オートフィルタでデータ集計
集計には Subtotal関数 を使います。
関数説明:WorksheetFunction.Subtotal(集計方法,参照範囲)
 
テスト対象テーブルを使いたい場合は、↓テーブルをコピーしてエクセルの A1 に貼り付けてください。
※13行目は見出し行も件数にカウントするので、-1 しています。
結果

実行前のテーブル

結果

実行前のテーブル

結果

実行前のテーブル

結果

実行前のテーブル

関数説明:WorksheetFunction.Subtotal(集計方法,参照範囲)
テスト対象のテーブル
 
テスト対象テーブルを使いたい場合は、↓テーブルをコピーしてエクセルの A1 に貼り付けてください。
| 商品名 | 個数 | 
|---|---|
| りんご | 4 | 
| みかん | 3 | 
| めろん | 5 | 
| いちご | 2 | 
| みかん | 1 | 
件数を集計
Sub sample()
    Dim Target(1) As String
    
    Target(0) = "みかん"
    Target(1) = "りんご"
    ThisWorkbook.ActiveSheet.Range("A1:B1").AutoFilter _
        Field:=1, _
        Criteria1:=Target, _
        Operator:=xlFilterValues
        
    MsgBox WorksheetFunction.Subtotal(3, Range("B:B")) - 1 & " 件"
End Sub
※13行目の件数の集計方法は「 3 」です。※13行目は見出し行も件数にカウントするので、-1 しています。
結果

実行前のテーブル

数値を集計
Sub sample()
    Dim Target(1) As String
    
    Target(0) = "みかん"
    Target(1) = "りんご"
    ThisWorkbook.ActiveSheet.Range("A1:B1").AutoFilter _
        Field:=1, _
        Criteria1:=Target, _
        Operator:=xlFilterValues
        
    MsgBox "合計: " & WorksheetFunction.Subtotal(9, Range("B:B"))
End Sub
※13行目の数値の集計方法は「 9 」です。結果

実行前のテーブル

最小値を求める
Sub sample()
    Dim Target(1) As String
    
    Target(0) = "みかん"
    Target(1) = "りんご"
    ThisWorkbook.ActiveSheet.Range("A1:B1").AutoFilter _
        Field:=1, _
        Criteria1:=Target, _
        Operator:=xlFilterValues
        
    MsgBox "最小値: " & WorksheetFunction.Subtotal(5, Range("B:B"))
End Sub
※13行目の最小値の集計方法は「 5 」です。結果

実行前のテーブル

最大値を求める
Sub sample()
    Dim Target(1) As String
    
    Target(0) = "みかん"
    Target(1) = "りんご"
    ThisWorkbook.ActiveSheet.Range("A1:B1").AutoFilter _
        Field:=1, _
        Criteria1:=Target, _
        Operator:=xlFilterValues
        
    MsgBox "最大値: " & WorksheetFunction.Subtotal(4, Range("B:B"))
End Sub
※13行目の最大値の集計方法は「 4 」です。結果

実行前のテーブル

集計方法と集計機能
| 集計方法 | 集計機能 | 
|---|---|
| 1 | 平均値を求める | 
| 2 | 数値の個数を求める | 
| 3 | データの個数を求める | 
| 4 | 最大値を求める | 
| 5 | 最小値を求める | 
| 6 | 積を求める | 
| 7 | 不偏標準偏差を求める | 
| 8 | 標本標準偏差を求める | 
| 9 | 合計値を求める | 
| 10 | 不偏分散を求める | 
| 11 | 標本分散を求める | 




ディスカッション
コメント一覧
まだ、コメントがありません