Vba: 2 つの日付間の if を追加する方法
セルが 2 つの日付の間にある場合、VBA で次の構文を使用して合計を計算できます。
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
この特定の例では、範囲A2:A9の日付がセルE1の開始日とセルE2の終了日の間にある場合にのみ、範囲 B2:B9 の値を合計します。
合計はセルE3に表示されます。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA で 2 つの日付の間に If を追加する方法
小売店でさまざまな日に販売された製品の総数に関する情報を含む次のデータセットがあるとします。
01/07/2023から01/26/2023までの日付のみの売上の合計を計算したいとします。
これを行うには、次のマクロを作成できます。
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
このマクロを実行すると、次の出力が表示されます。
セルE3には値16が含まれていることに注意してください。
これは、日付が 01/07/2023 から 01/26/2023 までの売上列の値の合計を表します。
これが正しいことを確認するには、[日付] 列の対応する値が 01/7/2023 から 01/26/2023 の間にある [売上] 列の値の合計を手動で計算します。
売上の合計: 3 + 7 + 6 = 16 。
VBAで計算した値に相当します。
セルE1とE2の開始日と終了日の値をそれぞれ変更し、マクロを再度実行すると、新しい日付の売上の合計が計算されることに注意してください。
注: 日付列の値は Excel ですでに日付としてフォーマットされていることが前提となっています。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: SUMIF 関数と SUMIFS 関数の書き方
VBA: COUNTIF 関数と COUNTIFS 関数の書き方
VBA: AVERAGEIF 関数と AVERAGEIFS 関数の書き方