Excel Days Between Dates Calculator
Calculate the exact number of days between two dates with Excel formulas – includes weekends, workdays, and custom date ranges
Complete Guide: How to Calculate Days Between Dates in Excel
Calculating the number of days between two dates is one of the most common tasks in Excel, whether you’re tracking project timelines, calculating employee tenure, or analyzing financial periods. This comprehensive guide will show you all the methods to calculate days between dates in Excel, including handling weekends, holidays, and creating dynamic date calculations.
Basic Method: Using the DAYS Function
The simplest way to calculate days between dates is using Excel’s built-in DAYS function:
- Enter your start date in cell A1 (e.g., 1/15/2023)
- Enter your end date in cell B1 (e.g., 2/20/2023)
- In cell C1, enter the formula:
=DAYS(B1,A1) - Press Enter to get the result (36 days in this example)
Pro Tip:
The DAYS function was introduced in Excel 2013. For earlier versions, you can use =B1-A1 (with cells formatted as dates) to get the same result.
Calculating Workdays (Excluding Weekends)
For business calculations where you need to exclude weekends, use the NETWORKDAYS function:
- Enter start date in A1, end date in B1
- Use formula:
=NETWORKDAYS(A1,B1) - This automatically excludes Saturdays and Sundays
To also exclude specific holidays:
- Create a range with your holiday dates (e.g., D1:D5)
- Use formula:
=NETWORKDAYS(A1,B1,D1:D5)
Advanced Date Calculations
| Calculation Type | Excel Formula | Example Result (1/1/2023 to 1/31/2023) |
|---|---|---|
| Total days | =DAYS("1/31/2023","1/1/2023") |
30 |
| Workdays (Mon-Fri) | =NETWORKDAYS("1/1/2023","1/31/2023") |
22 |
| Years between dates | =DATEDIF("1/1/2020","1/1/2023","y") |
3 |
| Months between dates | =DATEDIF("1/1/2023","1/31/2023","m") |
0 |
| Days excluding weekends and holidays | =NETWORKDAYS("1/1/2023","1/31/2023",{"1/2/2023","1/16/2023"}) |
20 |
The DATEDIF Function (Hidden Gem)
Excel’s DATEDIF function is one of its best-kept secrets. It’s not documented in Excel’s help files but has been available since Lotus 1-2-3. The syntax is:
=DATEDIF(start_date, end_date, unit)
Where unit can be:
"y"– Complete years between dates"m"– Complete months between dates"d"– Days between dates"ym"– Months excluding years"yd"– Days excluding years"md"– Days excluding months and years
Example: =DATEDIF("1/15/2020","6/20/2023","y") returns 3 (complete years)
Handling Different Date Formats
Excel can sometimes be finicky with date formats. Here’s how to ensure consistent results:
- Always use the same date format throughout your worksheet
- For international dates, use the
DATEfunction:=DATE(2023,5,15)for May 15, 2023 - To convert text to dates, use
=DATEVALUE("5/15/2023") - Check your system’s regional settings if dates aren’t calculating correctly
Common Errors and Solutions
| Error | Likely Cause | Solution |
|---|---|---|
| #VALUE! | Non-date value in date cell | Ensure both arguments are valid dates or date serial numbers |
| #NUM! | End date before start date | Swap the dates or use ABS function |
| ###### | Column too narrow | Widen the column or change number format |
| Incorrect count | Dates stored as text | Use DATEVALUE to convert text to dates |
| Negative number | End date before start date | Use =ABS(DAYS(end,start)) for absolute value |
Practical Applications
Calculating days between dates has numerous real-world applications:
- Project Management: Track project durations and milestones
- HR: Calculate employee tenure for benefits eligibility
- Finance: Determine interest periods for loans or investments
- Inventory: Monitor product shelf life and expiration dates
- Education: Calculate semester lengths and assignment deadlines
- Legal: Track contract periods and statute of limitations
Excel vs. Google Sheets Comparison
While both Excel and Google Sheets can calculate days between dates, there are some differences:
| Feature | Microsoft Excel | Google Sheets |
|---|---|---|
| DAYS function | Available (2013+) | Available |
| NETWORKDAYS | Available | Available |
| DATEDIF | Undocumented but works | Officially documented |
| Holiday range | Supports cell ranges | Supports cell ranges |
| Custom weekend parameters | No (always Sat-Sun) | Yes (optional parameter) |
| Date format recognition | Strict (system dependent) | More flexible |
| Array formulas for holidays | Requires Ctrl+Shift+Enter | Works natively |
Best Practices for Date Calculations
- Always use cell references: Instead of hardcoding dates like
=DAYS("1/31/2023","1/1/2023"), use cell references for flexibility - Format cells properly: Ensure date cells are formatted as dates (Right-click → Format Cells → Date)
- Use named ranges: For frequently used date ranges, create named ranges for easier reference
- Document your formulas: Add comments to explain complex date calculations
- Test edge cases: Verify your formulas work with:
- Same start and end dates
- End date before start date
- Dates spanning year boundaries
- Leap years (February 29)
- Consider time zones: If working with international dates, account for time zone differences
- Use data validation: Restrict date inputs to valid date ranges
Automating Date Calculations with VBA
For advanced users, you can create custom date functions using VBA:
Function CustomDaysBetween(startDate As Date, endDate As Date, Optional includeWeekends As Boolean = False) As Long
Dim daysCount As Long
daysCount = endDate - startDate
If Not includeWeekends Then
Dim i As Long
For i = startDate + 1 To endDate - 1
If Weekday(i, vbSaturday) = 1 Or Weekday(i, vbSaturday) = 7 Then
daysCount = daysCount - 1
End If
Next i
End If
CustomDaysBetween = daysCount
End Function
To use this:
- Press Alt+F11 to open VBA editor
- Insert → Module
- Paste the code above
- Close VBA editor
- Now use
=CustomDaysBetween(A1,B1,FALSE)in your worksheet
Alternative Methods Without Functions
If you prefer not to use functions, you can calculate days between dates using simple subtraction:
- Enter start date in A1, end date in B1
- Format both cells as dates (Right-click → Format Cells → Date)
- In C1, enter:
=B1-A1 - Format C1 as General or Number to see the day count
For workdays without NETWORKDAYS:
- Create a helper column with
=WEEKDAY(A1)(where A1 contains your date) - Use COUNTIF to count only weekdays (values 2-6)
Handling Time Components
When your dates include time components, you can:
- Ignore time: Use
=INT(B1-A1)to get whole days - Include time: Use
=B1-A1for decimal days (e.g., 3.5 for 3 days and 12 hours) - Extract time only: Use
=B1-A1-INT(B1-A1)then format as time
Visualizing Date Ranges with Conditional Formatting
To visually highlight date ranges:
- Select your date range
- Go to Home → Conditional Formatting → New Rule
- Select “Use a formula to determine which cells to format”
- Enter formula like
=AND(A1>=$D$1,A1<=$E$1)(where D1 is start date, E1 is end date) - Set your desired format (e.g., light blue fill)
- Click OK to apply
Excel Date System Explained
Understanding how Excel stores dates can help troubleshoot issues:
- Excel stores dates as sequential serial numbers (1 = January 1, 1900)
- Time is stored as fractional portions of a day (.5 = 12:00 PM)
- Windows Excel uses 1900 date system, Mac Excel (pre-2011) used 1904 system
- Date serial numbers allow mathematical operations (subtraction for days between)
- Negative dates aren't supported in Excel's date system
Important Note:
Excel's date system has a known bug where it incorrectly assumes 1900 was a leap year. This affects dates between March 1, 1900 and February 28, 1900. For most practical purposes, this doesn't cause issues, but be aware if working with historical dates.
External Resources and Further Learning
For more advanced date calculations, consider these authoritative resources:
- Microsoft's Official DATEDIF Documentation
- Harvard University's Excel Guide (includes date functions)
- IRS Publication 538 (Accounting Periods and Methods - includes date calculation examples)
Frequently Asked Questions
Q: Why am I getting a negative number when calculating days?
A: This means your end date is before your start date. Either swap the dates or use the ABS function: =ABS(DAYS(end,start))
Q: How do I calculate days between today and a future date?
A: Use =DAYS("future_date",TODAY()) or =DAYS("future_date",NOW())
Q: Can I calculate business days excluding specific holidays?
A: Yes, use =NETWORKDAYS(start,end,holidays_range) where holidays_range contains your holiday dates
Q: How do I get the result in years and months instead of days?
A: Use =DATEDIF(start,end,"y") for years and =DATEDIF(start,end,"ym") for months
Q: Why does my date calculation give a different result than expected?
A: Check that:
- Both cells are properly formatted as dates
- There are no hidden time components
- You're not mixing up American (MM/DD/YYYY) and European (DD/MM/YYYY) date formats
- The dates fall within Excel's valid date range (1/1/1900 to 12/31/9999)
Final Thoughts
Mastering date calculations in Excel is an essential skill for data analysis, project management, and financial modeling. The key functions to remember are:
DAYS- Basic day count between datesNETWORKDAYS- Business days excluding weekends and holidaysDATEDIF- Flexible date difference calculationsWEEKDAY- Determine day of week for custom calculationsTODAY/NOW- Dynamic current date/time references
By combining these functions with Excel's other features like conditional formatting, data validation, and charts, you can create powerful date-based analysis tools tailored to your specific needs.
Remember to always test your date calculations with various scenarios, especially around month-end and year-end boundaries where off-by-one errors commonly occur.