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