# How to find the last business day of the month in Excel

Go to the first day of next month and step back one working day: `=WORKDAY(EOMONTH(A2,0)+1,-1,holidays)`.

**Excel:** `=WORKDAY(EOMONTH(A2,0)+1,-1,$D$2)` (Every current version)

**Google Sheets:** the same formula works.

## Example

Sample data (row 1 is the header):

| A | B | C | D |
| --- | --- | --- | --- |
| Date | Last business day |  | Holidays |
| 2026-01-14 |  |  | 2026-12-31 |
| 2026-02-03 |  |  |  |
| 2026-05-20 |  |  |  |
| 2026-08-09 |  |  |  |
| 2026-10-01 |  |  |  |
| 2026-12-15 |  |  |  |

Formula in B2, filled to B7: `=WORKDAY(EOMONTH(A2,0)+1,-1,$D$2)`

Result: 1/30/2026; 2/27/2026; 5/29/2026; 8/31/2026; 10/30/2026; 12/30/2026

## How it works

`EOMONTH(A2,0)+1` is the first day of the next month, and WORKDAY with -1 steps back to the nearest working day before it, skipping weekends and holidays. January 31, 2026 is a Saturday, so the last business day is Friday, January 30.

## Other ways

- `=WORKDAY(EOMONTH(A2,0)+1,-1)`: Weekends only, when there are no holidays to skip. (December 31 counts as a business day.)
- `=EOMONTH(A2,0)-MAX(0,WEEKDAY(EOMONTH(A2,0),2)-5)`: Works without WORKDAY: steps back 1 day from a Saturday and 2 from a Sunday. (Ignores holidays.)

## Common mistakes

- Starting WORKDAY from `EOMONTH(A2,0)` without the +1 skips the last day even when it is a weekday.
- Holidays must be real dates. Text like "12/31/2026" in the holiday list is ignored.

## Questions

**How do I get the first business day of the month?**

`=WORKDAY(EOMONTH(A2,-1),1,$D$2)`.

**How do I get the last business day of next month?**

Change the month offset: `=WORKDAY(EOMONTH(A2,1)+1,-1,$D$2)`.

Every formula and result on this page was checked by running it in the Spreadsheet Practice formula engine on 2026-10-30.

Source: https://spreadsheetpractice.com/formulas/last-business-day-of-the-month
