Vba: jak dodać if pomiędzy dwiema datami


Możesz użyć następującej składni w VBA, aby obliczyć sumę, jeśli komórki znajdują się pomiędzy dwiema datami:

 Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
                                                       Range(" A2:A9 "), " <= " & [E2])
End Sub

W tym konkretnym przykładzie wartości z zakresu B2:B9 zostaną zsumowane tylko wtedy, gdy data z zakresu A2:A9 przypada pomiędzy datą początkową w komórce E1 a datą końcową w komórce E2 .

Suma zostanie wówczas wyświetlona w komórce E3 .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Jak dodać If pomiędzy dwiema datami w VBA

Załóżmy, że mamy następujący zbiór danych zawierający informacje o łącznej liczbie produktów sprzedanych w różnych terminach w sklepie detalicznym:

Załóżmy, że chcemy obliczyć sumę sprzedaży tylko dla dat pomiędzy 01.07.2023 a 26.01.2023 .

W tym celu możemy utworzyć następujące makro:

 Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
                                                       Range(" A2:A9 "), " <= " & [E2])
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Zauważ, że komórka E3 zawiera wartość 16 .

Stanowi to sumę wartości w kolumnie sprzedaży, gdzie data przypada pomiędzy 07.01.2023 a 26.01.2023.

Możemy sprawdzić, czy jest to prawidłowe, ręcznie obliczając sumę wartości w kolumnie Sprzedaż, gdzie odpowiadająca wartość w kolumnie Data mieści się w przedziale od 07.01.2023 do 26.01.2023:

Suma sprzedaży: 3 + 7 + 6 = 16 .

Odpowiada to wartości obliczonej przez VBA.

Pamiętaj, że jeśli zmienisz wartości dat rozpoczęcia i zakończenia odpowiednio w komórkach E1 i E2 i ponownie uruchomisz makro, to obliczy ono sumę sprzedaży dla nowych dat.

Uwaga : Zakłada się, że wartości w kolumnie daty są już sformatowane jako daty w programie Excel.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak pisać funkcje SUMIF i SUMIFS
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS
VBA: Jak napisać funkcje ŚREDNIA.JEŻELI i ŚREDNIA.JEŻELI

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *