Function Problems

How to Calculate the Previous Business Day Excluding Holidays in Excel

John WilsonJohn Wilson Nov 10, 2026 869 views

Question details

The user needs a formula to calculate the previous working day, ensuring that standard weekends and a specific list of holidays are automatically skipped.

How to Calculate the Previous Business Day Excluding Holidays
Product
Spreadsheets
Device & OS
not provided
Scenario
Setting up a dynamic date formula for business reports or tracking that requires knowing the exact last working day prior to the current date.
Observed behavior
Standard functions like WEEKDAY can identify weekend days but do not automatically exclude custom non-working days like US holidays.
Before you start

Compile a list of upcoming US holiday dates in a blank column of your spreadsheet. The formula will need to reference this specific list to know which dates to skip.

Solution 1Recommended

Calculate Previous Business Day using the WORKDAY Function

Use the WORKDAY function to subtract a day from the current date while instructing the spreadsheet to ignore weekends and your specified holiday dates.

The WORKDAY function takes a start date, the number of days to add or subtract, and an optional range of holiday dates. By using a negative value (-1), it steps backward to the most recent working day.

1
Create the holiday list

Enter all US holiday dates into a blank column in your worksheet, for example, cells A2 through A10.

2
Name the holiday range

Select the cells containing your holiday dates, click the Name Box located to the left of the formula bar, type 'HOLIDAY', and press Enter.

3
Apply the WORKDAY formula

Select the cell where you want the previous business day to appear and enter the formula: =WORKDAY(TODAY(),-1,HOLIDAY).

4
Format the result as a Date

If the formula result appears as a large serial number, right-click the cell, select 'Format Cells', and choose your preferred Date format.

Calculate Previous Business Day using the WORKDAY Function
Using TODAY() vs. NOW(): Use the TODAY() function if you only need the date. If your calculation also requires a specific time component, replace TODAY() with NOW() in your formula.
Efficient Spreadsheet Management

Calculate Business Dates Easily with WPS Spreadsheet

WPS Spreadsheet fully supports the WORKDAY function and seamlessly handles complex date calculations, making it a perfect tool for tracking business days and holidays without any extra add-ins.

  1. 1. Open WPS Spreadsheet: Launch WPS Office and open your workbook in the WPS Spreadsheet application.
  2. 2. Input Holiday Dates: Enter your holiday dates into a column and highlight them to define a custom name in the Name Box.
  3. 3. Use the Formula: Type =WORKDAY(TODAY(), -1, [YourHolidayRange]) into any empty cell to accurately calculate the previous business day.
Fully compatible with Microsoft Excel formulas, including WORKDAY, TODAY, and NOW.Free, lightweight, and fast spreadsheet application for everyday tasks.Built-in Name Manager makes creating and maintaining holiday ranges simple and error-free.Familiar user interface with zero learning curve for Excel users.
QA img-9

Frequently Asked Questions

Can I use a dynamic table for my holiday list?

Yes, converting your holiday list into a Table (Ctrl+T) and referencing the table column in your WORKDAY formula ensures that any new holidays added later are automatically included in the calculation without updating the formula.

What if my company's weekends are not Saturday and Sunday?

If your non-working days differ from the standard weekend, use the WORKDAY.INTL function instead. It allows you to specify exactly which days of the week should be treated as the weekend using a custom weekend parameter.

Why is my formula returning a 5-digit number instead of a date?

Spreadsheets store dates as sequential serial numbers. To display it correctly as a date, select the cell, navigate to the Home tab, and change the Number Format dropdown from 'General' to 'Short Date'.

Can I subtract more than one business day at a time?

Absolutely. You can change the '-1' in the formula to the exact number of business days you want to subtract. For example, use '-3' to find the date exactly three business days ago.