VBAで
・複数の条件を満たすデータの合計を取得
できます!
VBAから
・ワークシート関数「SUMIFS関数」
を使用することで実現できます!
VBAコード
ここでは例として、
・シート「sample」のB列「支店名」が「東京」、かつC列「名前」が「佐藤」の
・D列「売上」の合計を取得
します。
※上記の条件を満たす合計は1200です。
Option Explicit
Sub sample()
Dim ws As Worksheet
Dim startRange As Range
Dim endRow As Double
Dim endRange As Range
Dim branchRange As Range
Dim nameRange As Range
Dim salesRange As Range
Dim resultSum As Double
'対象シートを取得
Set ws = Worksheets("sample")
'------------------------------------
'「支店名」列の対象範囲を取得
'------------------------------------
'開始セルを取得
Set startRange = ws.Range("B3")
'最終行を取得
endRow = startRange.End(xlDown).Row
'最終セルを取得
Set endRange = ws.Cells(endRow, startRange.Column)
'対象範囲を取得
Set branchRange = ws.Range(startRange, endRange)
'------------------------------------
'「名前」列の対象範囲を取得
'------------------------------------
'開始セルを取得
Set startRange = ws.Range("C3")
'最終行を取得
endRow = startRange.End(xlDown).Row
'最終セルを取得
Set endRange = ws.Cells(endRow, startRange.Column)
'対象範囲を取得
Set nameRange = ws.Range(startRange, endRange)
'------------------------------------
'「売上」列の対象範囲を取得
'------------------------------------
'開始セルを取得
Set startRange = ws.Range("D3")
'最終行を取得
endRow = startRange.End(xlDown).Row
'最終セルを取得
Set endRange = ws.Cells(endRow, startRange.Column)
'対象範囲を取得
Set salesRange = ws.Range(startRange, endRange)
'------------------------------------
'複数の条件を満たすデータの合計を取得
'------------------------------------
resultSum = WorksheetFunction.SumIfs(salesRange, branchRange, "東京", nameRange, "佐藤")
MsgBox ("条件を満たすデータの合計:" & resultSum)
End Sub
実行結果
複数の条件を満たすデータの合計を取得できました。
※上記に記載した通り、条件を満たす合計は1200です。
参考①
複数の条件を満たすデータの件数を取得することもできます。
詳細は以下の記事をご確認ください。
参考②
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「WorksheetFunctionオブジェクト」の「SumIfs」メソッド