Find the Last Friday (or Any Weekday) of a Month in Excel
By ExcelReady TeamUpdated 7 min read
The short answer
To find the last Friday of a month in Excel, start from the month's last day and step back to Friday: =EOMONTH(A2,0)-MOD(WEEKDAY(EOMONTH(A2,0),2)-5,7). EOMONTH gives the last day, WEEKDAY with type 2 numbers Monday as 1 and Friday as 5, and MOD works out how many days to go back. Change the 5 for any other weekday.
Key takeaways
- The last Friday formula is =EOMONTH(A2,0)-MOD(WEEKDAY(EOMONTH(A2,0),2)-5,7).
- With WEEKDAY return type 2, Monday is 1 and Sunday is 7. Swap the 5 for any day you need.
- MOD keeps the step back between 0 and 6 days, so the answer always stays inside the month.
- For the last working day of the month, use =WORKDAY(EOMONTH(A2,0)+1,-1).
On this page+
To get the last Friday of a month in Excel, take the last day of the month with EOMONTH and step back to the nearest Friday with WEEKDAY and MOD. One formula does it, and changing a single number makes it work for the last Monday, Tuesday or any other weekday. This guide is for anyone who schedules paydays, month-end reports or recurring meetings that land on "the last Friday".
The last Friday of the month formula#
Use this formula, where A2 holds any date in the month you want:
=EOMONTH(A2,0)-MOD(WEEKDAY(EOMONTH(A2,0),2)-5,7)It works in three steps:
EOMONTH(A2,0)returns the last day of the month in A2. The 0 means "this month", not a month before or after.WEEKDAY(...,2)turns that last day into a weekday number. Return type 2 numbers the days Monday = 1 to Sunday = 7, so Friday is 5.MOD(weekday-5,7)is how many days you need to go back to reach Friday. MOD returns the remainder after dividing by 7, so the result is always 0 to 6.
Subtract that number of days from the month's last day and you land on the last Friday. If the month ends on a Friday, MOD returns 0 and the answer is the last day itself.
Here is the formula on a few real months:
| Date in A2 | Last day of month | Weekday number | Days back | Last Friday |
|---|---|---|---|---|
| 10 Nov 2026 | Mon 30 Nov 2026 | 1 | 3 | Fri 27 Nov 2026 |
| 3 Dec 2026 | Thu 31 Dec 2026 | 4 | 6 | Fri 25 Dec 2026 |
| 15 Jan 2027 | Sun 31 Jan 2027 | 7 | 2 | Fri 29 Jan 2027 |
| 4 Feb 2027 | Sun 28 Feb 2027 | 7 | 2 | Fri 26 Feb 2027 |
| 8 Jul 2026 | Fri 31 Jul 2026 | 5 | 0 | Fri 31 Jul 2026 |
Look at November: 1-5 is -4, and MOD(-4,7) is 3, because Excel's MOD always returns a result with the same sign as the divisor. That is why the formula never steps forward into the next month. The EOMONTH function guide explains the months argument, and the WEEKDAY guide covers every return type.
How to find the last Monday, Wednesday or any weekday#
Replace the 5 with the number of the day you want. With return type 2, the numbers are:
| Day | Number |
|---|---|
| Monday | 1 |
| Tuesday | 2 |
| Wednesday | 3 |
| Thursday | 4 |
| Friday | 5 |
| Saturday | 6 |
| Sunday | 7 |
So the last Monday of the month is:
=EOMONTH(A2,0)-MOD(WEEKDAY(EOMONTH(A2,0),2)-1,7)For November 2026 this returns Mon 30 Nov 2026, the last day itself. For a reusable sheet, put the day number in a cell, say E1, and write -$E$1 instead of -5. Then one input changes every row.
You may also see this shorter version online:
=EOMONTH(A2,0)+1-WEEKDAY(EOMONTH(A2,0)+1-6)It gives the same results, but it uses WEEKDAY's default numbering (Sunday = 1, so Friday = 6) and starts from the first day of next month. Pick one style and stick to it, because mixing the two numbering systems is the most common source of wrong days.
How to find the first, second or third Friday#
To find the first Friday, start from the first day of the month and step forward instead of back:
=EOMONTH(A2,-1)+1+MOD(5-WEEKDAY(EOMONTH(A2,-1)+1,2),7)EOMONTH(A2,-1)+1 is the first day of the month: the last day of last month, plus one. Here MOD counts the days forward to Friday. Sunday 1 November 2026 has weekday 7, so MOD(5-7,7) is 5 and the first Friday is Fri 6 Nov 2026.
Every later Friday is a multiple of 7 days after that:
| You want | Add to the first Friday | November 2026 |
|---|---|---|
| Second Friday | +7 | Fri 13 Nov |
| Third Friday | +14 | Fri 20 Nov |
| Fourth Friday | +21 | Fri 27 Nov |
| Second-to-last Friday | Last Friday −7 | Fri 20 Nov |
Be careful with a "fifth Friday": some months don't have one, so adding 28 can spill into the next month. Check it with MONTH(result)=MONTH(A2). The guide to the first and last day of the month uses the same building blocks for the first Monday.
How to find the last working day of the month#
If you need the last working day rather than a set weekday, WORKDAY is simpler:
=WORKDAY(EOMONTH(A2,0)+1,-1)EOMONTH(A2,0)+1 is the first day of next month, and -1 asks WORKDAY for one working day before it. WORKDAY skips Saturdays and Sundays, so for November 2026 it returns Mon 30 Nov 2026, and for January 2027 it returns Fri 29 Jan 2027.
Add a list of public holidays as the third argument, for example =WORKDAY(EOMONTH(A2,0)+1,-1,$H$2:$H$10), and Excel skips those dates too. For more on stepping by months, see EDATE and EOMONTH explained.
What if the last Friday is a holiday?#
The last Friday of December 2026 is 25 December, which is a public holiday in many countries. The formula has no way to know that, so add a check. If your holidays are in H2:H10 and the last Friday is in B2:
=IF(COUNTIF($H$2:$H$10,B2)>0,B2-7,B2)If the date appears in the holiday list, COUNTIF returns 1 and the formula moves one week earlier, to Fri 18 Dec 2026. If you would rather pay on the working day before the holiday, use =WORKDAY(B2,-1,$H$2:$H$10) for those rows, which gives Thu 24 Dec 2026.
How to list the last Friday of every month#
Put the first day of each month in column A and fill the formula down:
- In A2, type
=DATE(2027,1,1). In A3, type=EDATE(A2,1)and fill down to A13 for twelve months. - In B2, type the last Friday formula pointing at A2.
- Select B2:B13 and fill down (Windows: Ctrl+D; Mac: ⌘D).
The A2 reference is relative, so each row uses its own month. Format column B as a date, or wrap the formula in TEXT for a label such as "Fri 29 Jan 2027": =TEXT(B2,"ddd d mmm yyyy"). To check how many days each month has before you plan around it, see how to count the days in a month.
Common mistakes#
Most wrong answers come from the weekday numbering, not from EOMONTH:
- Leaving out the 2 in WEEKDAY. Without it, Sunday is 1 and Friday is 6, so the formula finds the last Thursday. Always write
WEEKDAY(date,2)when you use 5 for Friday. - Using subtraction without MOD.
EOMONTH(A2,0)-(WEEKDAY(EOMONTH(A2,0),2)-5)goes forward past the month end whenever the month ends on a Monday to Thursday. MOD fixes that. - The result is a number like 46353. That is the date's serial number. Format the cell as a date (Windows: Ctrl+1; Mac: ⌘1).
- A2 holds text, not a date. EOMONTH returns #VALUE! if the date was typed or imported as text. Convert it first with DATEVALUE.
- EOMONTH shows a #NAME? error. Check the spelling: it is EOMONTH, with no space or dot.
If you need the next Friday after a given date rather than the last one in a month, the guide to finding the next weekday from a date has the forward version of this formula.
Practise it#
The exercise on this page uses real paydays: find the last Friday of November 2026 and fill it down for the next three months. Then practise WEEKDAY, EDATE and EOMONTH in a live spreadsheet, and if dates still feel strange, start with how Excel stores dates as numbers. You type each formula and it is checked instantly.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Payday is the last Friday of each month. In B2, find the last Friday of the month in A2: =EOMONTH(A2,0)-MOD(WEEKDAY(EOMONTH(A2,0),2)-5,7), then press Enter.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Last Friday | |||
| 2 | ||||
| 3 | ||||
| 4 | ||||
| 5 | ||||
| 6 | ||||
| 7 | ||||
| 8 |
Tip: EOMONTH(A2,0) is Monday 30 November 2026. WEEKDAY with type 2 gives 1, and MOD(1-5,7) is 3, so step back 3 days to Friday 27 November (serial number 46353).
Practise this in a lesson
Frequently asked questions
How do I find the last Friday of the month in Excel?
Use =EOMONTH(A2,0)-MOD(WEEKDAY(EOMONTH(A2,0),2)-5,7), where A2 is any date in the month. It takes the last day of the month and steps back zero to six days until it reaches a Friday.
How do I find the last Monday of the month?
Use the same formula with 1 instead of 5: =EOMONTH(A2,0)-MOD(WEEKDAY(EOMONTH(A2,0),2)-1,7). With WEEKDAY return type 2, Monday is 1, Tuesday 2 and so on up to Sunday 7.
How do I find the third Friday of a month in Excel?
Find the first Friday with =EOMONTH(A2,-1)+1+MOD(5-WEEKDAY(EOMONTH(A2,-1)+1,2),7), then add 14 days. Add 7 for the second Friday or 21 for the fourth.
How do I get the last working day of the month?
Use =WORKDAY(EOMONTH(A2,0)+1,-1). It starts on the first day of the next month and goes back one working day, skipping Saturday and Sunday. Add a holiday range as the third argument to skip holidays too.
Why does my last Friday formula show a number like 46353?
Excel stores dates as numbers, and the cell has a General or Number format. Format it as a date with Ctrl+1 on Windows or Command+1 on Mac, and 46353 shows as 27 November 2026.