Google Sheets Add Months to Date: Step-by-Step Guide
Learn how to add months to a date in Google Sheets using EDATE and related functions. This practical guide covers formulas, edge cases, and templates to ensure reliable date arithmetic for schedules, timelines, and dashboards.

You can add months to a date in Google Sheets with the EDATE function. EDATE(date, months) returns a new date offset by the specified number of months, handling year rollovers and leap year nuances automatically. Use IFERROR for clean results, and copy the formula down a column for bulk dates. This guide shows practical examples and edge-case tips for reliable date arithmetic.
Why date arithmetic matters in Google Sheets
Date arithmetic is a core skill for students, professionals, and small business owners who rely on schedules, due dates, and timelines. When you need to move a deadline forward by a certain number of months, doing it manually is error-prone and time-consuming. The phrase google sheets add months to date captures a common use case: updating monthly milestones, subscription anniversaries, or project calendars with a single formula. According to How To Sheets, mastering date functions like EDATE can dramatically reduce manual edits and keep timelines consistent across teams. A solid grasp of date math also helps when forecasting, budgeting, and generating rolling reports. By learning the right approach, you’ll save time and avoid misalignments in your data.
Core functions: EDATE, EOMONTH, and DATE
Google Sheets offers several robust date helpers. The EDATE function is the most direct for adding or subtracting whole months: EDATE(date, months). EOMONTH is useful when you need the end-of-month date after adjusting months, and you can combine DATE with MONTH to build custom offsets if you’re working with text dates. For most use cases, EDATE suffices: it handles month overflow into the next year and accounts for varying month lengths. When validating results, ensure your cells are formatted as dates; otherwise, they may display as serial numbers. How To Sheets emphasizes starting with EDATE for straightforward month offsets and layering on EOMONTH or DATE for more complex scenarios.
Practical examples: add 1, 3, 6, and 12 months
Suppose A2 contains a date like 2026-03-15. To add one month, enter =EDATE(A2, 1). To add three months, use =EDATE(A2, 3). For six months, =EDATE(A2, 6); for twelve months, =EDATE(A2, 12). When applying across a range, drag the fill handle to copy the formula down. If a date is in text format, wrap the reference with DATEVALUE to convert it first. If the result should be shown as a date, format the cell with a Date format to ensure consistent display.
Handling end-of-month and leap years
Edge cases arise when the original date is the 31st of a month or when February days shift. EDATE maintains valid calendar dates, automatically adjusting for months with fewer days (e.g., adding one month to 2026-01-31 yields 2026-02-28 or 2026-02-29 in leap years). If you need the last day of the resulting month, you can combine EDATE with EOMONTH: =EOMONTH(EDATE(A2, n), 0). This approach is reliable for dashboards where month-end reporting is essential.
Working with columns and dynamic ranges
When building a date-offset table, place your base date in a single column and your months-to-add in another. Use EDATE to compute offsets like =EDATE($A2, B$1) if B1 has the number of months. To create a multi-row, multi-column calendar, you can nest EDATE with ARRAYFORMULA for bulk calculations: =ARRAYFORMULA(EDATE(A2:A, B2)). Ensure you lock references properly with $ when you intend to drag across rows or columns. This technique scales neatly for reports and schedules.
Best practices and common mistakes to avoid
Always verify that your source dates are true date values, not text. If a date is stored as text, EDATE will not work as expected; convert with DATEVALUE first. Prefer explicitly formatting outputs as Date to prevent Excel-like serial-number confusion. Use IFERROR to handle invalid inputs gracefully, especially in dashboards used by non-technical teammates. Regularly back up your sheet before applying bulk date shifts to prevent accidental data loss, and test formulas with a small sample before full deployment.
Putting date arithmetic into templates
For repeatable work, turn your date-offset logic into a small template: a base date column, a offset column (months to add), and a result column using =EDATE(base_date, offset). Attach data validation to the offset field to keep values sane (e.g., -6 to 24). This approach enables quick reuse across projects and makes onboarding new teammates faster. As you scale, consider wrapping complex logic in named ranges for readability and maintainability.
Troubleshooting and next steps
If results look off, check date formatting, ensure there are no stray spaces in your data, and verify you aren’t referencing the wrong cells. For large datasets, use ARRAYFORMULA or Google Apps Script to automate repeated tasks, but test on a subset first. If you need end-of-month results, the EOMONTH technique can be a safer alternative. With these tools, you’ll consistently produce correct monthly offsets in Google Sheets, facilitating dependable planning and reporting.
Tools & Materials
- Google Sheets (web or app) with an active account(Open a sheet you can edit; ensure you have edit access)
- Column of valid date values(Dates should be real date values (not text) in a recognized format)
- Formula-ready destination column(Where the EDATE results will appear; include headers if using a table)
- Backup copy of the workbook(Recommended before applying bulk date shifts)
Steps
Estimated time: Total time: 10-20 minutes depending on dataset size
- 1
Identify the base date
Locate the cell that contains the date you want to offset. Ensure it is a true date value and not text. If needed, convert using DATEVALUE or DATE parsing rules.
Tip: Use a header row and lock the date cell with absolute references when using it in formulas. - 2
Write the EDATE formula
In the target cell, enter =EDATE(base_date, months). Replace base_date with your date cell reference (e.g., A2) and months with the number of months to add (positive) or subtract (negative).
Tip: If you plan to copy down, keep the base_date reference relative (A2) and the months reference stable. - 3
Copy the formula down the column
Drag the fill handle down to apply the formula to adjacent rows. Google Sheets will adjust the base_date reference automatically for each row.
Tip: Double-click the fill handle to auto-fill down to the last adjacent data row. - 4
Format the results as dates
Select the result column and apply a Date format (e.g., YYYY-MM-DD) so the numbers display as readable dates rather than serial numbers.
Tip: If numbers appear as 44000-style values, formatting fixes the display without changing the underlying value. - 5
Handle end-of-month edge cases
If you need the last day of the resulting month, use =EOMONTH(EDATE(base_date, months), 0). This accounts for months with varying lengths and leap years.
Tip: Combine EDATE with EOMONTH for robust month-end calculations. - 6
Validate and consider bulk automation
For large datasets, consider ARRAYFORMULA or a small Apps Script to apply date offsets. Validate results with spot checks to ensure accuracy.
Tip: Start with a small sample to confirm behavior before applying to the entire sheet.
FAQ
What does EDATE do in Google Sheets?
EDATE(date, months) returns a date offset by the specified number of months, automatically handling year changes and varying month lengths.
EDATE adds or subtracts whole months from a date and keeps the calendar valid.
How do I subtract months instead of adding?
Use a negative number in the months argument, for example =EDATE(A2, -3) to subtract three months.
Set months to a negative value to go backward.
Why is my date shown as a number like 44197?
Dates are stored as serial numbers in Google Sheets. Apply a Date format to display them as human-readable dates.
Dates are numeric; format as date to read them properly.
Can I apply EDATE to an entire column automatically?
Yes. Use a relative reference like =EDATE(A2, B$1) and drag down or use ARRAYFORMULA for bulk operations.
You can fill down or use an array formula for many rows at once.
Is EDATE affected by leap years?
EDATE accounts for leap years when calculating February dates, ensuring correct results around year boundaries.
Leap years are handled automatically by EDATE.
Are there alternatives to EDATE for month-based calculations?
You can combine MONTH, DATE, and EOMONTH for custom logic, but EDATE is the simplest and most reliable for month offsets.
You can use other functions, but EDATE is usually best for month offsets.
Watch Video
The Essentials
- Master EDATE for straightforward month offsets
- Use EOMONTH when you need end-of-month results
- Format outputs to Date and validate inputs
- Test formulas on a sample before scaling
- Leverage templates for repeatable date arithmetic
