Contact

EOMONTH in WPS Spreadsheet: Find Month Ends and Build Complete Date Intervals

Date & Time Intermediate WPS Spreadsheet

Find WPS month ends with positive, negative and truncated offsets, build half-open monthly ranges, and count month lengths without hard-coded assumptions.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Quick answer: EOMONTH(start_date, months) returns the final date of the month at the requested offset. Offset 0 means the start date’s own month. The result is a date value, so apply a date display format.

Availability and version history

  • Introduced: documented by 2019-05-22 in the official WPS lesson; original introduction is not established.
  • Availability: WPS Office for Windows Personal; the lesson metadata gives no numeric release.
  • Scope: exact current supported builds remain unverified; the historical Windows lesson does not establish all WPS clients.
  • Checked: October 14, 2026 against complete function-specific documentation. Examples are independent expectations; no native WPS test was performed.

Syntax and offset rules

=EOMONTH(start_date, months)

Both arguments are required. The historical WPS definition accepts a valid date start, uses positive offsets for future months and negative offsets for earlier months, and truncates noninteger offsets. It names #NUM! for an invalid date value or a combination producing an invalid date.

These controls use DATE-built modern inputs and ordinary integer or explicitly truncated offsets. Arbitrary text/Boolean coercion and every native error boundary remain unverified. English names and comma separators are shown; outputs are independently modeled.

Example 1: move to the end of a target month

=EOMONTH(DATE(2020,1,18),2)
=EOMONTH(DATE(2020,1,18),-2)
=EOMONTH(DATE(2020,1,18),0)

Expected dates are 31 Mar 2020, 30 Nov 2019 and 31 Jan 2020. The first two mirror the positive and negative offsets discussed in the WPS walkthrough. The result is the final day of the target month, not its day 18.

Example 2: test February and fractional offsets

Formula Expected date
=EOMONTH(DATE(2024,1,15),1) 29 Feb 2024
=EOMONTH(DATE(2026,1,15),1) 28 Feb 2026
=EOMONTH(DATE(2026,1,15),1.9) 28 Feb 2026
=EOMONTH(DATE(2026,1,15),-1.9) 31 Dec 2025
=EOMONTH(DATE(2026,1,15),-0.9) 31 Jan 2026

The fractional examples remove the fractional part toward zero under the documented truncation rule. They do not round to the nearest month.

Advanced example: create complete monthly boundaries

Put =DATE(2026,10,14) in A2:

=EOMONTH(A2,-1)+1
=EOMONTH(A2,0)+1

Expected dates are 1 Oct 2026 and 1 Nov 2026. For a reporting interval, include values at or after the first boundary and before the second boundary. That keeps a late time on 31 October inside the month without treating midnight at the start of that date as its end.

Date-only controls 30 Sep, 1 Oct, 31 Oct and 1 Nov 2026 classify as outside, inside, inside and outside. For timestamps, retain the full numeric date-time values in the comparisons.

Advanced example: calculate the length of each month

For a date in A2:

=EOMONTH(A2,0)-EOMONTH(A2,-1)

The result is a number of days, so format it as Number. Dates in February 2024, February 2026, April 2026 and December 2026 produce 29, 28, 30 and 31. No fixed 30-day assumption is needed.

A complete year’s month-length results sum to 366 for 2024 and 365 for 2026. These are independently verified calendar controls, not evidence of a specific workbook’s absolute serial origin.

Advanced example: fill a month-end schedule from one anchor

With =DATE(2026,11,15) in D2 and offsets 0, 1, 2 and 3 in F2:F5, fill =EOMONTH($D$2,F2) down G2:G5. Expected outputs are 30 Nov 2026, 31 Dec 2026, 31 Jan 2027 and 28 Feb 2027.

The fixed anchor makes the schedule’s intent visible. Use EDATE for corresponding-day shifts instead, subject to its own shorter-month limits.

Troubleshooting

A serial-looking number usually needs a date display format; a text-looking source needs its underlying type checked. The source’s opening duplicated “after” wording is resolved by its explicit positive/future and negative/past argument definitions, not by guessing.

The historical absolute-serial explanation is inconsistent, so this guide does not certify the earliest representable date, import date systems, time-fraction handling or undocumented native error variants. Use DATE for reproducible modern inputs.

References and verification

The complete function definition and walkthrough were reviewed. Worked outputs are independent calendar and time models; source ambiguities and native boundaries remain explicit.