Generisk formel
=EOMONTH(date,0)+1-WEEKDAY(EOMONTH(date,0)+1-dow)
Sammendrag
For å få den siste ukedagen i en måned (dvs. den siste lørdagen, den siste fredagen, den siste mandagen osv.) Kan du bruke en formel basert på EOMONTH og WEEKDAY-funksjonene.
I eksemplet vist er formelen i D5:
=EOMONTH(B5,0)+1-WEEKDAY(EOMONTH(B5,0)+1-C5)
Forklaring
Først bestemmer denne formelen den første dagen i neste måned * etter * en gitt dato. Det gjør dette ved å bruke EOMONTH for å få den siste dagen i måneden, og deretter legge til en dag:
=EOMONTH(B5,0)+1
Deretter beregner formelen antall dager som kreves for å "rulle tilbake" til den siste etterspurte ukedagen i måneden før (dvs. måneden til den opprinnelige datoen):
WEEKDAY(EOMONTH(B5,0)+1-C5)
Inne i UKEDAG blir EOMONTH igjen brukt til å få den første dagen i neste måned. Fra denne datoen trekkes verdien for ukedag, og resultatet blir matet inn i UKEDAG, som returnerer antall dager å rulle tilbake.
Til slutt trekkes tilbakeføringsdagene fra den første dagen i neste måned, noe som gir det endelige resultatet.
Andre hverdager
I den generelle formen for formelen øverst på siden, forkortes ukedagen "dow". Dette er et tall mellom 1 (søndag) og 7 (lørdag) som kan endres for å få en annen ukedag. For eksempel, for å få den siste torsdagen i en måned, sett dow til 5.
Merk: Jeg løp inn i denne formelen i et svar på MrExcel-forumet av Barry Houdini.