Mastering EOMONTH in Google Sheets
A practical guide to using EOMONTH in Google Sheets for accurate month-end calculations, including syntax, examples, and templates for budgeting and reporting.

The eomonth google sheets function returns the last day of a month for a given start date and a month offset, enabling reliable month-end calculations in budgeting, scheduling, and reporting. In practice, combine TODAY() or DATE with EOMONTH to anchor month-end dates across lists. This quick method minimizes off-by-one errors and keeps month-end logic consistent, as shown by How To Sheets in their practical guides.
What is EOMONTH and when to use it
At its core, EOMONTH returns the last day of the month for a given start date and a month offset. In the eomonth google sheets workflow, start_date can be TODAY(), a date in a cell, or a date created with DATE(). The months parameter accepts positive, negative, or zero, allowing you to jump forward, backward, or stay on the same month. This is ideal for month-end planning, billing cycles, quarterly reporting, and any workflow that requires a stable end-of-month anchor. According to How To Sheets, the eomonth google sheets approach reduces manual date fiddling and minimizes off-by-one errors.
=EOMONTH(DATE(2025, 1, 15), 0)Notes:
- The result is a date value; format the cell as a date to display it properly
- Use a cell reference like
A2for date input and offset inB2for dynamic lists
,
Steps
Estimated time: 10-15 minutes
- 1
Set up a date column
Create a start date column (e.g., column A) with valid date values. If you have dates as text, convert them using DATEVALUE or DATE. This step ensures EOMONTH calculations have proper inputs.
Tip: Verify a few sample inputs are recognized as dates (Format > Number > Date). - 2
Enter the EOMONTH formula
In the adjacent column (e.g., column B), enter the basic EOMONTH formula to compute the month-end date for each row. Use a simple reference like =EOMONTH(A2, 0) and copy down.
Tip: Start with 0 to stay in the same month; use 1 to advance one month, -1 for the previous month. - 3
Extend to bulk calculations
Use ArrayFormula to apply EOMONTH to an entire column range in one shot. This reduces manual copying and keeps data dynamic as new dates are added.
Tip: Example: =ArrayFormula(EOMONTH(A2:A, 0)) - 4
Format and verify results
Format the result column as Date. Check a few known dates (end of Jan, Feb in leap years, etc.) to verify correctness.
Tip: If needed, wrap with TEXT() to display in a specific format, e.g., =TEXT(EOMONTH(A2,0), "yyyy-MM-dd").
Prerequisites
Required
- Required
- Basic date formatting knowledgeRequired
- Familiarity with standard date functions (DATE, TODAY)Required
Optional
- Optional: ArrayFormula for bulk operationsOptional
Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| CopyCopy selected cell(s) or range | Ctrl+C |
| PastePaste into the target range | Ctrl+V |
| Fill downFill formula or value down a column | Ctrl+D |
| UndoUndo the last action | Ctrl+Z |
| RedoRedo the last undone action | Ctrl+Y |
| Insert current dateInsert the current date into the active cell | Ctrl+; |
FAQ
What does EOMONTH do in Google Sheets?
EOMONTH returns the last day of the month for a given start date and an offset in months. It’s ideal for month-end reporting, budgeting, and scheduling tasks where a stable end date is needed.
EOMONTH gives you the month’s last date based on a start date and an offset.
How do I get the end of the month for a date in A2?
Use the formula =EOMONTH(A2, 0). If you want the next month’s end, use 1 as the offset. For previous month, use -1.
Use EOMONTH with the date in A2 to find that month’s end.
Can I apply EOMONTH to an entire column without dragging?
Yes. Use ArrayFormula to apply EOMONTH to a whole column at once, e.g., =ArrayFormula(EOMONTH(A2:A, 0)).
Yes, array formulas let you extend EOMONTH across many rows in one go.
What if the start date is text?
Convert text to a date using DATEVALUE or DATE, then apply EOMONTH. Strings that don’t parse as dates will cause errors.
Make sure your date input is a real date value before using EOMONTH.
Is EOMONTH different from EDATE?
Yes. EOMONTH returns the end-of-month date for the given month, while EDATE returns the date offset by a number of months without adjusting to month end.
EOMONTH ends the month; EDATE simply adds months.
The Essentials
- Use EOMONTH for consistent month-end dates
- Combine with TODAY() or DATE for dynamic month ends
- Use ArrayFormula to scale across large ranges
- Always format results as dates for correct display