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: як написати функції SUMIF і SUMIFS
VBA: як написати функції COUNTIF і COUNTIFS
VBA: як написати функції AVERAGEIF і AVERAGEIFS

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *