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