DATE
DATUM in Dutch Excel
Builds a real Excel date from a year, a month and a day, rolling over any month or day that falls outside its normal range.
Last updated: 13 October 2026
| Row | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Entry no. | Year | Month | Day | Posting date |
| 2 | 25-0412 | 20252025 | 1212 | 3131 | 31 Dec 202531 Dec 2025=DATE(B2, C2, D2)=DATE(B2; C2; D2) |
| 3 | 25-0413 | 20262026 | 11 | 22 | |
| 4 | 26-0003 | 20262026 | 11 | 1515 |
Swipe sideways to see all columns
Result: 31 Dec 2025
=DATE(B2,C2, D2)
=DATE(B2;C2; D2)
What DATE does and when to use it
What it does: it builds a real date, a serial number that Excel can calculate with, from a year, a month and a day, for example the bank statement date that an export splits over three columns.
When to use it: to put a fixed date in a formula, rebuild dates from parts, or find the first or last day of a period (month 13 rolls over to January, day 0 is the last day of the previous month). To move a date by whole months, EDATE is shorter.
How Excel evaluates it
Excel works through the arguments in order:
- year: Excel settles which year it means, 1900 to 9999 as written, 0 to 1899 plus 1900
- month: Excel counts month months forward from the start of that year, so any month outside 1 to 12 moves the date into another year
- day: from the first day of that month Excel counts day days, so a day past the end of the month continues into the next month and day 0 lands on the last day of the previous month
The answer is a serial number, the count of days since 1 January 1900, and Excel formats the cell as a date. 31 March 2026 is serial number 46112.
Mental model
A car's odometer for the calendar: push the month wheel past 12 and the year wheel ticks over; turn the day wheel back to 0 and you land on the last day of the month before.
Terms used on this page: serial number, argument, cell
DATE(year,month, day)
DATE(year;month; day)
| Argument | Type | Meaning |
|---|---|---|
year | Required | The year, written with four digits. |
month | Required | The month number; above 12 or below 1 rolls into another year. |
day | Required | The day number; 0 gives the last day of the previous month. |
Return value:The date as a serial number
Formulas use commas (,) between arguments, as in English Excel. Formulas use semicolons (;) between arguments, as in Dutch Excel. Formulas use commas (,) between arguments, as in English Excel; Dutch Excel uses semicolons (;).
Worked examples
Beginner
Rebuild a bank statement date split over three columns
The bank journal (BNK) arrives from the client's system with the posting date as three separate numbers: year, month and day. For the cut-off test around 31 December 2025 you need one proper date per entry in column E, so you can sort and filter on it.
| Row | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Entry no. | Year | Month | Day | Posting date | |
| 2 | 25-0412 | 20252025 | 1212 | 3131 | 31 Dec 202531 Dec 2025=DATE(B2, C2, D2)=DATE(B2; C2; D2) | |
| 3 | 25-0413 | 20262026 | 11 | 22 | ||
| 4 | 26-0003 | 20262026 | 11 | 1515 | ||
| 5 |
Swipe sideways to see all columns
Formula in E2
=DATE(B2,C2, D2)
=DATE(B2;C2; D2)
Result: 31 Dec 2025
Step by step
- Excel reads
B2as year: 2025. It lies between 1900 and 9999, so it is used as written. - It reads
C2as month: 12, which is December 2025. - It reads
D2as day: 31. Counting from 1 December, the 31st day is 31 December, which still falls inside December. - The result is serial number 46022, which Excel displays as 31 Dec 2025 because the cell has a date format.
- Copy the formula down and
E3becomes 2 Jan 2026 andE415 Jan 2026. Entry25-0413is therefore posted after year end, and you can sort on column E to separate the entries on each side of the cut-off.
Watch out: If a future export writes the year as 25, E2 becomes Dec 31, 1925. Nothing warns you, so check the year column after each import.
More on this example: why it works
Why it works
DATE needs numbers in a fixed order, year, month, day, and the export supplies exactly that in three columns. The result is a real date, so it sorts in time order and can be compared with 31 December 2025, which three separate numbers cannot.
Intermediate
Month in which an asset is fully depreciated
The fixed asset register (activastaat) lists the start year and start month of depreciation per asset. You recalculate from which date each asset is fully depreciated: the first day of the month after the last depreciation charge.
The useful life in months sits in F1, so you can change it per asset class. Assets that start late in the year must land in a later year.
| Row | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 1 | Asset | Start year | Start month | Fully depreciated from | Useful life (months) | 3636 | |
| 2 | A-101 | 20232023 | 44 | 1 Apr 20261 Apr 2026=DATE(B2, C2 + $F$1, 1)=DATE(B2; C2 + $F$1; 1) | |||
| 3 | A-102 | 20232023 | 99 | ||||
| 4 | A-103 | 20232023 | 1111 | ||||
| 5 | A-104 | 20242024 | 11 | ||||
| 6 | A-105 | 20242024 | 1212 | ||||
| 7 |
Swipe sideways to see all columns
Formula in D2
=DATE(B2,C2 + $F$1, 1)
=DATE(B2;C2 + $F$1; 1)
Result: 1 Apr 2026
Step by step
- Excel evaluates the month argument first:
C2+$F$1= 4 + 36 = 40. - DATE(2023, 40, 1) counts 40 months from January 2023. 36 months is three years, so month 40 is April 2026: 1 April 2026.
- Copied down, the formula reads B and C of its own row but still
$F$1.D3: 9 + 36 = 45, so 1 September 2026.D4: 11 + 36 = 47, so 1 November 2026. D5: 1 + 36 = 37 from 2024, so 1 January 2027.D6: 12 + 36 = 48 from 2024, which is December of 2027: 1 December 2027. The year moves up without any IF.- Any depreciation the client still books on or after that date is a finding. Change
F1to 60 andD2becomes 1 April 2028 (4 + 60 = 64) for every row at once, because all copies point at$F$1.
Watch out: Without the $ signs, D3 would read F2, which is empty and counts as 0, and show 1 September 2023: a plausible date that is wrong.
More on this example: why it works, 1 variation
Why it works
DATE counts months from January of the given year, so any total above 12 is a position in a later year. Fixing day at 1 keeps every result on the first of a month, which avoids the day overflow you would get from a day such as 31. The $ signs hold F1 in place while B and C move down with the copy.
Variations
=DATE(B2,C2 + $F$1, 0)
=DATE(B2;C2 + $F$1; 0)
The last day of the final depreciation month instead of the first day after it: same month total, day 0. For A-101 that is 31 March 2026.
Advanced
Due date of purchase invoices at 30 days after end of month
For the payables cut-off test you recalculate the due date of purchase invoices (journal INK). The supplier terms count from the end of the invoice month, not from the invoice date: 30 days after end of month, and 14 days for one supplier.
You want to know which invoices fall due after 31 December 2025, including an invoice from December and one from the leap-year February of 2024.
| Row | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Invoice no. | Invoice date | Terms (days) | Due date | |
| 2 | INK-25-0311 | 18 Nov 2025 | 3030 | 30 Dec 202530 Dec 2025=DATE(YEAR(B2), MONTH(B2) + 1, 0) + C2=DATE(YEAR(B2); MONTH(B2) + 1; 0) + C2 | |
| 3 | INK-25-0342 | 5 Dec 2025 | 1414 | ||
| 4 | INK-25-0356 | 29 Dec 2025 | 3030 | ||
| 5 | INK-24-0071 | 3 Feb 2024 | 3030 | ||
| 6 |
Swipe sideways to see all columns
Formula in D2
=DATE(YEAR(B2),MONTH(B2) + 1, 0) + C2
=DATE(YEAR(B2);MONTH(B2) + 1; 0) + C2
Result: 30 Dec 2025
Step by step
- Excel evaluates the inner functions first. YEAR(B2) returns 2025 and MONTH(B2) returns 11, from 18 November 2025.
- DATE receives 2025, 11 + 1 = 12 and 0. Day 0 of December is the day before 1 December: 30 November 2025, serial number 45991.
- Excel adds
C2: 45991 + 30 = 46021, which is 30 December 2025. This invoice falls due before year end. D3: month 12 + 1 = 13 rolls into 2026, and day 0 of January 2026 is 31 December 2025. Plus 14 is 14 January 2026.D4: the same month end, 31 December 2025, plus 30 is 30 January 2026. Both December invoices fall due after year end.D5: month 2 + 1 = 3, and day 0 of March 2024 is 29 February 2024, because 2024 is a leap year. Plus 30 is 30 March 2024. DATE knows the length of every month, so no month table is needed.
Watch out: Writing the month end as DATE(YEAR(B2), MONTH(B2), 30) looks right for November but is silently wrong for February 2024: day 30 does not exist, so it returns 1 March 2024 and the due date shifts by one day.
More on this example: why it works, 1 more pitfall, 2 variations
Why it works
YEAR and MONTH take the date apart, DATE puts it back together one month later, and day 0 steps back one day to the end of the invoice month. Both kinds of rollover work together here: month 13 moves into the next year and day 0 moves into the previous month. Because Excel dates are day counts, adding C2 adds that many calendar days.
More to watch out for
- If B holds text that only looks like a date, YEAR returns #VALUE! or, worse, a date read in the wrong order, depending on the regional setting: 03/04/2026 is March 4 in a US setting and 3 April in a Dutch one.
Variations
=EOMONTH(B2,0) + C2
=EOMONTH(B2;0) + C2
EOMONTH returns the month end in one call and reads more clearly; the DATE version shows the mechanism and works the same in every version.
=DATE(YEAR(B2),MONTH(B2), 1)
=DATE(YEAR(B2);MONTH(B2); 1)
The first day of the invoice month: a period key that groups all invoices of one month under one date.
MasterExcel 2021 or later (This example needs Excel 2021 or later)
Quarter calendar for a client with a July to June financial year
Your client closes its books on 30 June, so its financial year runs from 1 July to 30 June. For the interim procedures and the cut-off tests you want the start and end date of each quarter as a small spilled table, driven by two settings, so the same formula serves next year and other clients with a broken financial year.
| Row | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Setting | Value | Quarter start | Quarter end | ||
| 2 | Financial year starts in year | 20252025 | 1 Jul 2025=LET( fyYear, B2, fyMonth, B3, q, SEQUENCE(4), DATE(fyYear, fyMonth + 3 * (q - 1) + {0,3}, {1,0}) )=LET( fyYear; B2; fyMonth; B3; q; SEQUENCE(4); DATE(fyYear; fyMonth + 3 * (q - 1) + {0\3}; {1\0}) ) | 30 Sep 2025 | ||
| 3 | First month of financial year | 77 | 1 Oct 2025 | 31 Dec 2025 | ||
| 4 | 1 Jan 2026 | 31 Mar 2026 | ||||
| 5 | 1 Apr 2026 | 30 Jun 2026 | ||||
| 6 |
Swipe sideways to see all columns
Formula in D2
=LET( fyYear,B2, fyMonth, B3, q, SEQUENCE(4), DATE(fyYear, fyMonth + 3 * (q - 1) + {0, 3}, {1, 0}) )
=LET( fyYear;B2; fyMonth; B3; q; SEQUENCE(4); DATE(fyYear; fyMonth + 3 * (q - 1) + {0\ 3}; {1\ 0}) )
Result: 1 Jul 2025 | 30 Sep 2025 / 1 Oct 2025 | 31 Dec 2025 / 1 Jan 2026 | 31 Mar 2026 / 1 Apr 2026 | 30 Jun 20261 Jul 2025 | 30 Sep 2025 / 1 Oct 2025 | 31 Dec 2025 / 1 Jan 2026 | 31 Mar 2026 / 1 Apr 2026 | 30 Jun 2026
Step by step
- LET names the settings: fyYear is 2025 and fyMonth is 7. q is SEQUENCE(4), a column of 1, 2, 3 and 4, one row per quarter.
- fyMonth + 3 * (q - 1) gives the first month of each quarter: 7, 10, 13 and 16. Adding the row constant {0,3} widens that column into two: the start month and the month three later, so the rows become 7 and 10, 10 and 13, 13 and 16, 16 and 19.
- The day argument {1,0} lines up with those two columns: day 1 in the first column, day 0 in the second. DATE is evaluated once per cell of the resulting 4 by 2 grid.
- Row 1: DATE(2025, 7, 1) is 1 July 2025 and DATE(2025, 10, 0) is 30 September 2025. Row 2: DATE(2025, 10, 1) is 1 October 2025 and DATE(2025, 13, 0) is 31 December 2025, because month 13 is January 2026 and day 0 steps back one day.
- Row 3: DATE(2025, 13, 1) is 1 January 2026 and DATE(2025, 16, 0) is 31 March 2026. Row 4: DATE(2025, 16, 1) is 1 April 2026, and DATE(2025, 19, 0) rolls month 19 into July 2026 and day 0 back to 30 June 2026. The financial year crosses the calendar year without any special case.
- The eight dates spill into
D2:E5. ChangeB3to 2 for a client whose year starts in February and the table recalculates to 1 February 2025 through 31 January 2026.
Watch out: Swapping the day constant to {0,1} looks almost the same but gives the day before each quarter start and the day after each quarter end: 30 June 2025 to 1 October 2025 in row 1. Check that row 1 starts on the first of fyMonth.
More on this example: why it works, 2 more pitfalls, 1 variation
Why it works
DATE accepts arrays in any argument and pairs them up the way arithmetic does: a 4-row column combined with a 1-by-2 row constant gives a 4-by-2 grid. The overflow rules then do all the calendar work: month 13 and above become the next year, day 0 becomes the month end.
Do not use this for a one-off date; a single DATE or EOMONTH in a cell is clearer. When the quarter table feeds lookups across many sheets of your working papers, a fixed period table typed once is the alternative: slower to set up, but a reviewer can read and check it without decoding array constants.
More to watch out for
- Dutch Excel writes the column separator inside an array constant as a backslash, so the constants read {0\3} and {1\0} there. The canonical form uses a comma.
D2:E5must be empty, otherwise the formula returns #SPILL!.
Variations
=LET( q,SEQUENCE(4), DATE(B2, B3 + 3 * q, 0) )
=LET( q;SEQUENCE(4); DATE(B2; B3 + 3 * q; 0) )
Only the quarter end dates, as a single column, when the starts are not needed.
Common mistakes
| Symptom | Cause | Fix |
|---|---|---|
| A date in 1936 and no error | The arguments are entered in Dutch reading order, DATE(31, 3, 2026), and the cell shows 15 September 1936 without any error. | The order is always year, month, day, whatever your regional setting. Year 31 becomes 1931 and day 2026 rolls forward more than five years. |
| 31 March 1926 instead of 2026 | A two-digit year, DATE(26, 3, 31), returns 31 March 1926. | Always pass four digits. If the source column holds two-digit years, add 2000 to it inside the formula. |
| A number like 46112 instead of a date | The formula works but the cell shows 46112 instead of a date. | The value is right; the cell had a number format before you typed the formula. Apply a date format to it. |
| Month 14 passes as a valid date | DATE is used to check input and a typo such as month 14 slips through as a valid date in the next year. | Rollover is by design. Test the month and day separately (for example with Data Validation) if the parts are typed by hand. |