Vba: как добавить, если между двумя датами
Вы можете использовать следующий синтаксис в VBA для вычисления суммы, если ячейки находятся между двумя датами:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
В этом конкретном примере значения в диапазоне B2:B9 будут суммироваться только тогда, когда дата в диапазоне A2:A9 попадает между датой начала в ячейке E1 и датой окончания в ячейке E2 .
Сумма будет отображаться в ячейке E3 .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: Как добавить If между двумя датами в VBA
Предположим, у нас есть следующий набор данных, содержащий информацию об общем количестве товаров, проданных в разные даты в розничном магазине:
Допустим, мы хотим посчитать сумму продаж только за даты с 07.01.2023 по 26.01.2023 .
Для этого мы можем создать следующий макрос:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что ячейка E3 содержит значение 16 .
Это представляет собой сумму значений в столбце продаж, где дата находится между 07.01.2023 и 26.01.2023.
Мы можем убедиться, что это правильно, рассчитав вручную сумму значений в столбце «Продажи», где соответствующее значение в столбце «Дата» находится между 07.01.2023 и 26.01.2023:
Сумма продаж: 3+7+6= 16 .
Это соответствует значению, рассчитанному VBA.
Обратите внимание: если вы измените значения даты начала и окончания в ячейках E1 и E2 соответственно и запустите макрос еще раз, он рассчитает сумму продаж для новых дат.
Примечание . Предполагается, что значения в столбце даты уже отформатированы как даты в Excel.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как писать функции СУММЕСЛИ и СУММЕСЛИ
VBA: как писать функции COUNTIF и COUNTIFS
VBA: Как написать функции СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИ