Contact

PlanMaker EDATE Function: Add or Subtract Calendar Months

Date and Time Intermediate SoftMaker PlanMaker 2026

Use EDATE in SoftMaker PlanMaker to move a date by whole calendar months, including leap years, month-end clipping, fractional offsets and compatibility caveats.

Verification status: Official documentation referenced; example outcomes independently reasoned or arithmetically checked where stated. Not executed in SoftMaker PlanMaker 2026. How formula examples are checked

Quick answer: =EDATE(DATE(2024,1,31),1) is expected to produce February 29, 2024. EDATE moves a valid starting date forward or backward by a number of calendar months. If the corresponding day does not exist in the destination month, PlanMaker uses that month’s last day instead. This makes it suitable for renewal, payment and appointment calendars—not for adding a fixed number of days. See SoftMaker’s PlanMaker 2026 English manual, EDATE entry on printed p. 616.

Validation: Examples are independently calculated expectations, not outputs observed in PlanMaker or Excel. Locale parsing, error edge cases and workbook exchange have not been tested.

When EDATE is the right function

Use EDATE when an event is defined by calendar months: a three-month subscription review, one-month payment due date, or renewal twelve months after signing. For a due date thirty days later, A2+30 follows a different rule: February and March do not contain the same number of days. Unlike EOMONTH, EDATE tries to retain the original day of the month. It clips dates like January 31 when the destination month is shorter.

Important nuance: It does not permanently remember that the original schedule started on the 31st. Applying EDATE repeatedly to its own clipped results can drift. For a repeating schedule, always calculate each date from the original anchor, using =EDATE($A$2,3*C2) rather than adding three months to the previous adjusted result. The difference is demonstrated below.

Official syntax and arguments

=EDATE(StartDate, m)
Argument Required? Definition Notes
StartDate Yes The initial date value. Prefer a genuine date cell or DATE(year,month,day); text interpretations vary by locale.
m Yes Number of calendar months to shift. Positive = future, negative = past, 0 = same date; decimal places are discarded rather than rounded.

The order is date first, months second. Both arguments are required; no optional default is documented. SoftMaker’s manuals explicitly say that if m is not an integer, the fractional portion is removed: 2.9 behaves as 2, and -2.9 behaves as -2. For a numeric input m, do not assume rounding to the nearest month. This statement is documentation checked, not natively executed.

The English manual displays a comma between parameters. Installation-specific list separators can differ: a localized installation may require semicolons; use Insert Function or local help if commas do not parse. Written dates such as 03/04/2024 can mean different days under different regional settings. Reproducible examples on this page use DATE(year,month,day) to avoid ambiguous text dates. Refer to SoftMaker’s date-entry documentation.

Reproducible exercise: twelve-month changes without guesswork

Open a blank worksheet. In A1:D1, enter Start date, Month offset, EDATE formula, Expected date. For rows 2–9, enter the date formulas and numeric offsets in columns A and B shown below. In C2, enter =EDATE(A2,B2) and fill down through C9. Format C2:C9 as dates (for example YYYY-MM-DD) instead of displaying raw underlying date serials. Column D below is a printed expected-output reference; you need not type its dates.

Row A: starting date formula B: month offset C: formula D: independently expected result
2 =DATE(2018,3,31) 1 =EDATE(A2,B2) 2018-04-30
3 =DATE(2018,9,25) 0 =EDATE(A3,B3) 2018-09-25
4 =DATE(2024,1,31) 1 =EDATE(A4,B4) 2024-02-29
5 =DATE(2023,1,31) 1 =EDATE(A5,B5) 2023-02-28
6 =DATE(2024,2,29) -1 =EDATE(A6,B6) 2024-01-29
7 =DATE(2024,3,30) -1 =EDATE(A7,B7) 2024-02-29
8 =DATE(2024,4,30) -1 =EDATE(A8,B8) 2024-03-30
9 =DATE(2024,12,31) 2 =EDATE(A9,B9) 2025-02-28

Read three edge cases: =EDATE(DATE(2024,1,31),1) clips to February 29 because 2024 is a leap year. The same operation from January 31, 2023 clips to February 28. =EDATE(DATE(2024,2,29),-1) becomes January 29—the original day 29 is retained in a longer destination month.

If the cell displays a seemingly unrelated integer, first apply a date number format. PlanMaker stores genuine dates as numbers; the displayed format determines whether you see a date or a serial. Do not compare raw serial values with Excel’s serial-date examples because the two products document different reference bases.

A quick official-example check

SoftMaker’s official examples shift March 30, 2018 and March 31, 2018 forward one month. Both yield April 30, 2018, since April has only 30 days. To reproduce without localized date strings, enter =EDATE(DATE(2018,3,30),1) and =EDATE(DATE(2018,3,31),1) in separate cells and apply a date display format. These results come from PlanMaker 2024’s EDATE entry and appear in the 2026 PDF. The expected date is independently verified; there was no native calculation.

Advanced case 1: quarterly schedule that does not drift

Put =DATE(2024,1,31) into A2 as the original contract date. Enter 0, 1, 2, 3 into C2:C5, then in D2 enter =EDATE($A$2,3*C2) and fill down. Independently expected schedule:

Quarter index (C) Months from anchor Expected date
0 0 2024-01-31
1 3 2024-04-30
2 6 2024-07-31
3 9 2024-10-31

Contrast with compounding =EDATE(D2,3) from the prior adjusted date: January 31 becomes April 30; three months after April 30 is July 30, not July 31. When the contract specifies anniversaries measured from signing, choose the anchored calculation, not successive adjustments. Both rows are independently computed expectations.

Advanced case 2: month shift versus month-end due date

For a contract signed 2024-04-15, =EDATE(DATE(2024,4,15),1) is expected to return 2024-05-15. =EOMONTH(DATE(2024,4,15),1) is expected to return 2024-05-31. The former retains the 15th; the latter forces the destination month-end. The corresponding official EOMONTH reference documents this separate behavior.

If payment is due on the last calendar day after two months, use EOMONTH; if due on the same day number where possible, use EDATE. Do not simulate a month with +30 or +31—months can be 28, 29, 30 or 31 days.

Advanced case 3: previous months and fractional offsets

  • =EDATE(DATE(2024,4,30),-1) → 2024-03-30 (not March 31).
  • =EDATE(DATE(2024,1,31),2.9) → 2024-03-31, because only two whole months are used.
  • =EDATE(DATE(2024,4,30),-2.9) → 2024-02-29, because the month offset is truncated toward zero to -2.
  • =EDATE(DATE(2024,2,15),-12) → 2023-02-15 (move one calendar year earlier).

This makes fractional offsets particularly risky when m is calculated from another cell. If fractional months are unintended, validate the source as an integer or show the offset in a visible helper cell before calculating the date. The exact handling of nonnumeric offsets and error displays has not been natively tested.

Troubleshooting and limits

Symptom Likely explanation Practical check
Expected 31st but got 30th or 28th/29th The destination month is shorter; EDATE clips its day. Compare the source day with the last day of the destination month.
Moving forward and then back gives a different day Month-end clipping discards the original day. Use the original anchor to calculate every occurrence.
Result is a number, not a date Result cell has a General/Number format. Format it as a date; do not treat raw serials as product-independent.
Date shifts by two months instead of three The offset may be 2.9; decimal places are discarded. Inspect the calculated m value or validate it as a whole number.
Formula appears invalid Parameter separator/name can vary by locale. Insert EDATE through the function UI; follow the localized separator.
Unexpected result after importing a CSV Text date was parsed as the wrong locale or left as text. Construct a genuine date with DATE(...) after verifying input columns.
Error from invalid date or out-of-range offset Date/number handling is installation and input dependent. Test simple DATE(2024,1,15) first; check format, type and vendor date range. Do not assume an undocumented exact EDATE error code.

SoftMaker documents a supported 1900-01-01 through 2500-12-31 date-entry range in its PlanMaker 2026 data-entry help. The effect of shifting outside that range was not tested, so this guide does not assert a specific error code. Likewise, empty cells, numeric text, invalid text, fractional start dates, and saved-workbook conversions require native verification before making definitive claims.

PlanMaker editions, versions, platforms and Excel compatibility

PlanMaker 2021, 2024 and 2026: EDATE’s documented argument order, month shifting, and integer-offset rule were compared in the corresponding official English manuals, all accessed 2026-10-12. This proves the function is documented for these releases; it does not establish the earliest release, the exact behavior in FreeOffice or NX/other editions, or parity across Windows, macOS and Linux. No PlanMaker application was installed or executed during preparation of this guide.

Excel: Microsoft’s EDATE documentation has corresponding EDATE(start_date, months) syntax and documents truncating fractional month offsets. Thus the concepts align, but identical behavior for every input, error message, locale, historical date, or .xlsx round-trip is unverified. For example, Microsoft describes January 1, 1900 as default serial 1, whereas SoftMaker’s date-entry documentation specifies January 1, 1900 as 0 in PlanMaker. Match formatted calendar dates, not blindly compared serial integers. Never claim that exporting an untested PlanMaker workbook preserves every formula and date exactly.

Frequently asked questions

Does EDATE add 30 days? No. It adds/subtracts calendar months; the number of days between start and finish varies.

Does it preserve the last day of each month automatically? No. It tries to retain the day number, clipping when necessary. For rolling month-end schedules prefer EOMONTH or compute from an original month-end anchor.

What if the month offset is zero? The documented shift leaves the date unchanged; independent check: =EDATE(DATE(2024,4,15),0) → 2024-04-15.

Is a text date safe? Avoid locale-ambiguous strings. The vendor’s examples use quoted dates, but the workbook can be configured for a different locale. Use DATE(year,month,day) or an already validated date cell.

Official source and claim verification ledger — accessed 2026-10-12 (UTC)

  • S1, PlanMaker 2026 English PDF: manual, printed p. 616 — EDATE syntax; forward/backward shifts; fractional month removal; March–April clipping examples. Documentation check, not native execution.
  • S2, PlanMaker 2024 online manual: EDATE (date before/after n months) — corroborates S1 and quoted vendor examples. Documentation check.
  • S3, PlanMaker 2021 English PDF: manual, EDATE entry in the E-functions section (printed pp. 578–580). Documented-version presence, not native support guarantee.
  • S4, PlanMaker 2026 date entry: Entering data in cells — locale sensitivity and date number formats/base/range. Documentation check.
  • S5, PlanMaker 2024 EOMONTH: official companion reference — distinct month-end function. Documentation check.
  • S6, Microsoft Excel EDATE: Excel function documentation — Excel-only syntax, rounding/truncation, default date serial context. Cross-program documentation comparison, not validation of PlanMaker runtime.

Validation disposition: Source claims = documented; all outputs and scheduling examples = independent Gregorian calculations, expected not observed; locale-specific parsing, error-code edge cases, native execution, XLSX export and platform behavior = unverified.