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: Как написать функции СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *