
Formuła ogólna
=EOMONTH(date,0)+1-WEEKDAY(EOMONTH(date,0)+1-dow)
Podsumowanie
Aby uzyskać ostatni dzień tygodnia w miesiącu (tj. Ostatnią sobotę, ostatni piątek, ostatni poniedziałek itd.), Możesz użyć formuły opartej na funkcjach EOMONTH i WEEKDAY.
W przedstawionym przykładzie formuła w D5 to:
=EOMONTH(B5,0)+1-WEEKDAY(EOMONTH(B5,0)+1-C5)
Wyjaśnienie
Najpierw ta formuła określa pierwszy dzień następnego miesiąca * po * danej dacie. Robi to, używając EOMONTH, aby uzyskać ostatni dzień miesiąca, a następnie dodając jeden dzień:
=EOMONTH(B5,0)+1
Następnie formuła oblicza liczbę dni wymaganych do „cofnięcia” do ostatniego żądanego dnia tygodnia w poprzednim miesiącu (tj. W miesiącu pierwotnej daty):
WEEKDAY(EOMONTH(B5,0)+1-C5)
Wewnątrz WEEKDAY, EOMONTH jest ponownie używany, aby uzyskać pierwszy dzień następnego miesiąca. Od tej daty wartość dnia tygodnia jest odejmowana, a wynik jest wprowadzany do WEEKDAY, który zwraca liczbę dni do cofnięcia.
Na koniec dni wycofywania są odejmowane od pierwszego dnia następnego miesiąca, co daje ostateczny wynik.
Inne dni powszednie
W ogólnym wzorze u góry strony dzień tygodnia jest skracany jako „dow”. Jest to liczba od 1 (niedziela) do 7 (sobota), którą można zmienić, aby ustawić inny dzień tygodnia. Na przykład, aby uzyskać ostatni czwartek miesiąca, ustaw 5.
Uwaga: napotkałem tę formułę w odpowiedzi na forum MrExcel autorstwa Barry'ego Houdiniego.