
Excel VBAで複数の条件に一致するセルの値を合計する「SumIfs」関数を使う記録です。
下図はExcel2016です。
< スポンサーリンク >
構文
WorksheetFunction.SumIfs(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)
Arg1=必須。データ型はRange。合計対象範囲:合計を求める対象範囲を指定。
Arg2=必須。データ型はRange。関連する基準を評価する1つまたは複数の範囲を指定。
Arg3 – Arg30=必須。データ型はVariant。数値、式、セル参照またはどのセルを追加するかを定義する文字列の形式で、1つ以上の抽出条件を指定。式および文字列を指定する場合は、”>32″、”Windows”のように半角の二重引用符(“)で囲む必要があります。
戻り値:倍精度浮動小数点型(Double)
セル範囲内で、複数の条件を満たすセルの値を合計します。
合計範囲内の各セルは、そのセルに対して指定されたすべての対応する条件がTrueである場合のみ合計されます。
合計対象範囲のセルにTrueが含まれている場合は1とみなされ、Falseが含まれている場合は0とみなされます。
例
アクティブシートのB列が「りんご」でC列が「10以上」の条件に一致する行のC列を合計してみます。
Sub test()
With ActiveSheet
MsgBox WorksheetFunction.SumIfs(.Range(“C:C”), _
.Range(“B:B”), “りんご”, _
.Range(“C:C”), “>=10”)
End With
End Sub


こんな記事も書いています