WEEKDAY
WEEKDAG in Dutch Excel
Returns the day of the week of a date as a number, where return_type decides which day counts as 1.
Last updated: 13 October 2026
| Row | A | B | C |
|---|---|---|---|
| 1 | Location | Count date | Day number |
| 2 | Tiel | 30 Dec 2025 | |
| 3 | Zwolle | 27 Dec 2025 | 66=WEEKDAY(B3, 2)=WEEKDAY(B3; 2) |
| 4 | Breda | 31 Dec 2025 | |
| 5 | Venlo | 2 Jan 2026 |
Swipe sideways to see all columns
Result: 6
=WEEKDAY(B3,2)
=WEEKDAY(B3;2)
What WEEKDAY does and when to use it
What it does: it turns a date into a number that tells you which day of the week it is, for example to see whether a journal entry was posted on a weekend.
When to use it: whenever a rule depends on the day: flagging weekends, summing weekend sales or finding the next delivery day. It returns a number, not a name; for the name use CHOOSE, or TEXT with the code dddd. To count or step over working days, NETWORKDAYS and WORKDAY are the better choice.
How Excel evaluates it
Excel reads serial_number and drops any time part. It works out which day of the week that date falls on, then looks at return_type to decide the numbering and returns the matching number. Only the day names you produce with TEXT follow the Excel language, so Saturday in English Excel is zaterdag in Dutch Excel.
Watch out: The numbering does not follow your regional settings: Dutch Excel also uses Sunday = 1 unless you pass 2.
Mental model
A week printed as seven numbered boxes. return_type decides which box is labelled 1; WEEKDAY tells you which box the date falls in.
WEEKDAY(serial_number,[return_type])
WEEKDAY(serial_number;[return_type])
| Argument | Type | Meaning | Default |
|---|---|---|---|
serial_number | Required | The date whose day of the week you want. | |
return_type | Optional | Which day is 1: 1 = Sunday (default), 2 = Monday. | 1 |
Return value:A number: the day of the week, counted as return_type sets
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
Which day of the week was the stock count?
You are planning your attendance at the year-end stock counts of Veldhuis Installatie BV. The client's count schedule lists the count date per location. You want the day of the week as a number, with Monday as 1, so you can see at a glance which counts fall on a weekend.
| Row | A | B | C | D |
|---|---|---|---|---|
| 1 | Location | Count date | Day number | |
| 2 | Tiel | 30 Dec 2025 | ||
| 3 | Zwolle | 27 Dec 2025 | 66=WEEKDAY(B3, 2)=WEEKDAY(B3; 2) | |
| 4 | Breda | 31 Dec 2025 | ||
| 5 | Venlo | 2 Jan 2026 | ||
| 6 |
Swipe sideways to see all columns
Formula in C3
=WEEKDAY(B3,2)
=WEEKDAY(B3;2)
Result: 66
Step by step
- Excel reads
B3: 27 Dec 2025, serial number 46018. That is the serial_number. - It works out that 27 Dec 2025 is a Saturday.
- return_type is 2, so Monday is 1, Tuesday 2, Wednesday 3, Thursday 4, Friday 5 and Saturday 6. Excel returns 6.
- Without the 2, the default numbering starts on Sunday, and the same Saturday would be 7.
- Copy the formula to
C4:B4is Wednesday 31 Dec 2025, so the result is 3.
Watch out: Dates in an exported specification often arrive as text, for example 27.12.2025 or n/a left-aligned in the cell. When Excel cannot read the text as a date, WEEKDAY returns #VALUE!, depending on the format and your regional settings. Real dates align right by default; text aligns left.
More on this example: why it works
Why it works
Every date is a serial number, and the day of the week repeats every 7 numbers, so Excel can always tell which day a date is. return_type only relabels the seven days; picking 2 makes the numbers match the week the way it is printed on Dutch and most European calendars.
Intermediate
Flag journal entries posted on a weekend
For journal entry testing you want every line of the XAF export marked as a weekend posting or a weekday posting, because weekend entries deserve a closer look. The formula goes in column D and is copied down. One line has no posting date.
| Row | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Date | Entry no. | Journal | Day type | |
| 2 | 28 Nov 2025 | 25-0388 | INK | ||
| 3 | 29 Nov 2025 | 25-0391 | MEM | Weekend=IF(WEEKDAY(A3, 2) > 5, "Weekend", "Weekday")=IF(WEEKDAY(A3; 2) > 5; "Weekend"; "Weekday") | |
| 4 | 30 Nov 2025 | 25-0392 | BNK | ||
| 5 | 1 Dec 2025 | 25-0395 | INK | ||
| 6 | 25-0399 | MEM | |||
| 7 |
Swipe sideways to see all columns
Formula in D3
=IF(WEEKDAY(A3,2) > 5, "Weekend", "Weekday")
=IF(WEEKDAY(A3;2) > 5; "Weekend"; "Weekday")
Result: Weekend
Step by step
- Excel evaluates WEEKDAY(A3, 2) first.
A3is 29 Nov 2025, a Saturday, and with return_type 2 Saturday is 6. - IF tests 6 > 5, which is TRUE, so it returns the second argument: Weekend.
Copied down:
A2(Friday Nov 28) gives 5, so WeekdayA4(Sunday Nov 30) gives 7, so WeekendA5(Monday Dec 1) gives 1, so Weekday
- Contrast with the default numbering, WEEKDAY(A2) > 5: Friday becomes 6 and is flagged as weekend, while Sunday becomes 1 and is not. The test looks the same but marks the wrong days.
- For
D6, the date inA6is blank. WEEKDAY reads it as serial number 0, which Excel treats as a Saturday, so it returns 6 and the line is marked Weekend.
Watch out: The blank date in row 6 is marked Weekend, so a line you cannot date lands in your weekend selection for the wrong reason. Test for an empty date first, and ask the client why the posting date is missing.
More on this example: why it works, 2 variations
Why it works
With return_type 2, Monday to Friday are 1 to 5 and the weekend is 6 and 7, so one comparison, greater than 5, separates the two groups. With the default numbering the weekend is 1 and 7, at both ends, and needs two tests.
Variations
=CHOOSE(WEEKDAY(A3,2), "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
=CHOOSE(WEEKDAY(A3;2); "Mon"; "Tue"; "Wed"; "Thu"; "Fri"; "Sat"; "Sun")
A short day name that you control: WEEKDAY gives 6, CHOOSE picks the sixth label, Sat. The order of the labels must match return_type 2.
=TEXT(A3,"dddd")
=TEXT(A3;"dddd")
The full day name, Saturday, without WEEKDAY. The name follows the Excel language: Dutch Excel shows zaterdag.
Advanced
Total the sales invoiced on weekends
In the sales journal (VRK) of Veldhuis Installatie BV you want to know how much was invoiced on a Saturday or Sunday in the weeks before year end, because weekend sales near the cut-off are a classic cut-off risk. The export has the posting date, the entry number and the credit amount, and you want one cell with the total, without a helper column.
| Row | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Date | Entry no. | Credit | Weekend sales | ||
| 2 | 19 Dec 2025 | 25-0771 | €18,450.00€ 18.450,00 | €20,100.00€ 20.100,00=SUMPRODUCT((WEEKDAY(A2:A8, 2) > 5) * C2:C8)=SUMPRODUCT((WEEKDAY(A2:A8; 2) > 5) * C2:C8) | ||
| 3 | 20 Dec 2025 | 25-0772 | €6,300.00€ 6.300,00 | |||
| 4 | 21 Dec 2025 | 25-0773 | €2,750.00€ 2.750,00 | |||
| 5 | 22 Dec 2025 | 25-0774 | €21,900.00€ 21.900,00 | |||
| 6 | 27 Dec 2025 | 25-0779 | €9,600.00€ 9.600,00 | |||
| 7 | 28 Dec 2025 | 25-0780 | €1,450.00€ 1.450,00 | |||
| 8 | 31 Dec 2025 | 25-0785 | €15,200.00€ 15.200,00 | |||
| 9 |
Swipe sideways to see all columns
Formula in E2
=SUMPRODUCT((WEEKDAY(A2:A8,2) > 5) * C2:C8)
=SUMPRODUCT((WEEKDAY(A2:A8;2) > 5) * C2:C8)
Result: €20,100.00€ 20.100,00
Step by step
- Excel evaluates WEEKDAY on the whole range
A2:A8and gets one number per date: {5; 6; 7; 1; 6; 7; 3}. Dec 19 is a Friday (5), Dec 20 a Saturday (6), Dec 21 a Sunday (7), Dec 22 a Monday (1), and so on. - The comparison > 5 turns that into {FALSE; TRUE; TRUE; FALSE; TRUE; TRUE; FALSE}: four weekend entries.
- Multiplying by
C2:C8turns TRUE into 1 and FALSE into 0: {0; 6300; 2750; 0; 9600; 1450; 0}. - SUMPRODUCT adds the results: 6,3006.300 + 2,7502.750 + 9,6009.600 + 1,4501.450 = 20,10020.100.
- Change the date in
A5to 27 Dec 2025, a Saturday, and the 21,90021.900 entry joins the weekend: the total becomes 42,00042.000.
Watch out: Leave out the 2 and the test > 5 picks Fridays and Saturdays: 18,45018.450 + 6,3006.300 + 9,6009.600 = 34,35034.350. That total looks plausible and is wrong.
More on this example: why it works, 1 more pitfall, 2 variations
Why it works
WEEKDAY accepts a range and returns an array, one day number per row, and the comparison turns that into a mask of TRUE and FALSE. Multiplying the mask by the amounts keeps only the weekend amounts, and SUMPRODUCT adds them. SUMIFS cannot do this directly, because its criteria test the cell values themselves, not a function of them.
More to watch out for
- A journal line without a date counts as a Saturday and its amount is added to the weekend total without any warning.
Variations
=SUM(FILTER(C2:C8,WEEKDAY(A2:A8, 2) > 5))
=SUM(FILTER(C2:C8;WEEKDAY(A2:A8; 2) > 5))
The same 20,10020.100 with FILTER: clearer to read, and you can drop the SUM to see which amounts were picked. Needs Excel 2021 or Microsoft 365.
=SUMPRODUCT(--(WEEKDAY(A2:A8,2) > 5))
=SUMPRODUCT(--(WEEKDAY(A2:A8;2) > 5))
Counts the weekend entries instead of adding them: 4. The double minus turns TRUE and FALSE into 1 and 0.
MasterExcel 2021 or later (This example needs Excel 2021 or later)
Next payment run when the client pays on Tuesday and Friday
For the search for unrecorded liabilities you need to know when each approved purchase invoice was paid. The client has a payment run only on Tuesdays and Fridays, and an invoice never goes in the run of the day it is approved. For every invoice, the sheet must show the next payment run date, so you can see which payments fall after year end 31 December 2025.
Invoice INK-4472 was approved on Wednesday 31 Dec 2025, so it goes in the Friday run.
| Row | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Invoice no. | Approved on | Supplier | Payment run | |
| 2 | INK-4471 | 29 Dec 2025 | Hoekstra Staalhandel | ||
| 3 | INK-4472 | 31 Dec 2025 | Van Dijk Logistiek | 2 Jan 20262 Jan 2026=LET( approved, B3, dayNum, WEEKDAY(approved, 2), daysToAdd, CHOOSE(dayNum, 1, 3, 2, 1, 4, 3, 2), approved + daysToAdd )=LET( approved; B3; dayNum; WEEKDAY(approved; 2); daysToAdd; CHOOSE(dayNum; 1; 3; 2; 1; 4; 3; 2); approved + daysToAdd ) | |
| 4 | INK-4473 | 26 Dec 2025 | Bosman Kantoorbehoeften | ||
| 5 | INK-4474 | 28 Dec 2025 | Peters Schoonmaak | ||
| 6 | INK-4475 | 30 Dec 2025 | De Boer Techniek | ||
| 7 |
Swipe sideways to see all columns
Formula in D3
=LET( approved,B3, dayNum, WEEKDAY(approved, 2), daysToAdd, CHOOSE(dayNum, 1, 3, 2, 1, 4, 3, 2), approved + daysToAdd )
=LET( approved;B3; dayNum; WEEKDAY(approved; 2); daysToAdd; CHOOSE(dayNum; 1; 3; 2; 1; 4; 3; 2); approved + daysToAdd )
Result: 2 Jan 2026
Step by step
- LET sets approved to
B3: Wednesday 31 Dec 2025, serial number 46022. - dayNum is WEEKDAY(approved, 2). Wednesday with Monday as 1 is 3.
- CHOOSE picks the third value from its list 1, 3, 2, 1, 4, 3, 2. Each position is the gap to the next Tuesday or Friday for that weekday: Monday to Tuesday is 1, Tuesday to Friday is 3, and Wednesday to Friday is 2. daysToAdd is 2.
- The last argument adds the two: 46022 + 2 = 46024, which is Friday 2 Jan 2026. The payment falls after year end, so the liability must be on the balance sheet at 31 December 2025.
Copied to the other rows:
- Monday Dec 29 gets +1, Tuesday Dec 30
- Friday Dec 26 is 5, so +4, Tuesday Dec 30
- Sunday Dec 28 is 7, so +2, Tuesday Dec 30
- Tuesday Dec 30 is 2, so +3, Friday 2 Jan 2026
Watch out: The mirror-image mistake: WEEKDAY(approved) without the 2 makes Wednesday 4, CHOOSE picks 1, and the result is Thursday 1 Jan 2026. It is a real date one day off, and nothing flags it.
More on this example: why it works, 1 more pitfall, 2 variations
Why it works
WEEKDAY turns the date into a position in the week, and CHOOSE turns that position into a number of days, so the payment schedule lives in one short list you can read and check day by day. LET names the steps so the next person sees what each number means.
Do not use this construction when payments also skip public holidays or when the schedule changes often: WORKDAY.INTL(B3, 1, "1011011", holidays) treats every day without a payment run as a weekend day and skips holidays too. The trade-off is that the seven-character mask (Monday first, 1 = no payment run) is harder to read than the CHOOSE list.
More to watch out for
- A blank approval date is read as serial number 0, a Saturday, and returns a payment date in January 1900. Test for a blank date before the LET if rows can be empty.
Variations
=B3 + CHOOSE(WEEKDAY(B3,12), 3, 2, 1, 4, 3, 2, 1)
=B3 + CHOOSE(WEEKDAY(B3;12); 3; 2; 1; 4; 3; 2; 1)
return_type 12 starts the week on Tuesday, the first payment day, so the list reads from run day to run day: Tuesday +3, Wednesday +2, Thursday +1, Friday +4. Same results, a code few people know.
=WORKDAY.INTL(B3,1, "1011011")
=WORKDAY.INTL(B3;1; "1011011")
The mask marks Monday, Wednesday, Thursday, Saturday and Sunday as days without a payment run, so one working day later is the next Tuesday or Friday: also 2 Jan 2026. Add a holiday range as a fourth argument.
Common mistakes
| Symptom | Cause | Fix |
|---|---|---|
| Fridays flagged as weekend, Sundays missed | Testing WEEKDAY(A2) > 5 for weekends: Fridays are flagged and Sundays are not. | Use WEEKDAY(A2, 2) > 5. With return_type 2, Saturday is 6 and Sunday is 7. |
| Blank dates counted as Saturdays | Blank date cells show up as Saturdays in weekend counts. | Test for blanks first, or clean the column, before you rely on WEEKDAY. |
| A 2 where you wanted 'Monday' | Expecting WEEKDAY to return 'Monday' and getting 2. | Wrap it in CHOOSE with seven names, or use TEXT(date, "dddd") for the name in the Excel language. |
Used in combinations
- Entries posted on weekends and public holidays with FILTER, WEEKDAY and COUNTIFList the journal entries dated on a Saturday, a Sunday or a Dutch public holiday: WEEKDAY flags the weekends, COUNTIF checks the date against a holiday list, and FILTER keeps the flagged rows.Excel 2021 or later (This combination needs Excel 2021 or later)