【VBA】条件に一致しないデータの合計を取得する【SUMIF関数】

VBAで
 ・条件に一致しないデータの合計を取得
できます!

VBAから
 ・ワークシート関数「SUMIF関数」
を使用することで実現できます!

PR

VBAコード

ここでは例として、
 ・シート「sample」のB列「名前」が「加藤さん以外」の
 ・C列「売上」の合計を取得
します。

加藤さん以外の「売上」の合計は7,000です。
加藤さん以外の「売上」の合計7,000です。
Option Explicit

Sub sample()

    Dim ws As Worksheet
    Dim startRange As Range
    Dim endRow As Double
    Dim endRange 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 nameRange = ws.Range(startRange, endRange)
    
    '------------------------------------
    '「売上」列の対象範囲を取得
    '------------------------------------
    '開始セルを取得
    Set startRange = ws.Range("C3")
    '最終行を取得
    endRow = startRange.End(xlDown).Row
    '最終セルを取得
    Set endRange = ws.Cells(endRow, startRange.Column)
    '対象範囲を取得
    Set salesRange = ws.Range(startRange, endRange)
    
    '------------------------------------
    '条件に一致しないデータの合計を取得
    '------------------------------------
    resultSum = WorksheetFunction.SumIf(nameRange, "<>" & "加藤", salesRange)
    
    MsgBox ("条件に一致しないデータの合計:" & resultSum)

End Sub

「名前」列の対象範囲を取得します(20~26行目)。
「売上」列の対象範囲を取得します(32~38行目)。

「WorksheetFunctionオブジェクト」の「SumIf」メソッドにより、「条件に一致しないデータの合計を取得」を取得します(43行目)。
※「WorksheetFunctionオブジェクト」によりワークシート関数を使用できます。

PR

実行結果

条件に一致しないデータの合計を取得できました。

実行結果
PR

参考①

条件に一致しないデータの件数を取得することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「WorksheetFunctionオブジェクト」の「SumIf」メソッド