Excel-formel: Få sista veckodagen i månaden -

Innehållsförteckning

Generisk formel

=EOMONTH(date,0)+1-WEEKDAY(EOMONTH(date,0)+1-dow)

Sammanfattning

För att få den sista veckodagen på en månad (dvs. den sista lördagen, den sista fredagen, den sista måndagen osv.) Kan du använda en formel baserad på EOMONTH och WEEKDAY-funktionerna.

I exemplet som visas är formeln i D5:

=EOMONTH(B5,0)+1-WEEKDAY(EOMONTH(B5,0)+1-C5)

Förklaring

Först bestämmer denna formel den första dagen i nästa månad * efter * ett visst datum. Det gör det här med EOMONTH för att få den sista dagen i månaden och sedan lägga till en dag:

=EOMONTH(B5,0)+1

Därefter beräknar formeln antalet dagar som krävs för att "rulla tillbaka" till den senast begärda veckodagen i månaden före (dvs. månaden för det ursprungliga datumet):

WEEKDAY(EOMONTH(B5,0)+1-C5)

Inne i VECKA används EOMONTH igen för att få den första dagen i nästa månad. Från detta datum subtraheras värdet för veckodag och resultatet matas in i VECKUDAG, vilket returnerar antalet dagar att rulla tillbaka.

Till sist subtraheras återvinningsdagarna från den första dagen i nästa månad, vilket ger det slutliga resultatet.

Andra vardagar

I den allmänna formen av formeln högst upp på sidan förkortas veckodagen "dow". Detta är ett nummer mellan 1 (söndag) och 7 (lördag) som kan ändras för att få en annan veckodag. Till exempel, för att få den sista torsdagen i en månad, ställa in dow till 5.

Obs: Jag stötte på den här formeln i ett svar på MrExcel-forumet av Barry Houdini.

Bra länkar

Barry Houdinis svar på MrExcel-forumet

Intressanta artiklar...