In Excel: use =WEEKDAY(date, 2) — it returns the day of the week as a number, where return_type 2 numbers Monday as 1 through Sunday as 7.
Syntax
Arguments
| Argument | Description | |
|---|---|---|
serial_number | required | The date to evaluate, as a cell reference, a date, or a serial number. |
return_type | optional | Controls the numbering: 1 (or omitted) = Sunday(1) to Saturday(7); 2 = Monday(1) to Sunday(7); 3 = Monday(0) to Sunday(6). |
Related functions
2026-W25 · WEEKNUM (Sunday start): 25
Day of year: 166
Need it as an auditable file?
Ships inside the linked template — formula-driven, unlocked, audit-ready.
What this does
WEEKDAY takes a date and returns which day of the week it falls on, as a NUMBER from 1 to 7 rather than a name. The optional return_type decides where the week starts: the default 1 runs Sunday(1) to Saturday(7), while 2 — the common ISO choice — runs Monday(1) to Sunday(7), and 3 runs Monday(0) to Sunday(6). Because it gives a number, WEEKDAY is built for logic: flagging weekends, filtering by day, or feeding an IF. If you want the day NAME instead, use TEXT(date, "dddd") rather than WEEKDAY. The same idea underpins a lot of everyday Excel work, so the few minutes spent getting it right here pay back across every sheet you build afterwards. Treat it as a pattern, not a one-off, and it stops being something you look up and starts being something you reach for. For “excel get weekday from date”, the reliable version is a short checking loop, not just the first command that appears to work. Run it on a deliberately small range first, watch how the affected cells change, and only then apply the same setup to the full sheet. When a formula is involved, keep the inputs labelled beside it, reference cells instead of typing values, and apply number formatting only after the result checks out. That is what makes a calculation you can defend to a CFO or an auditor useful in real work: repeatable, auditable, and not dependent on memory or luck.
A worked example
Cell A2 holds the date 2026-06-03 (a Wednesday). =WEEKDAY(A2, 2) returns 3, because with return_type 2 Monday is 1, Tuesday 2 and Wednesday 3. With the default, =WEEKDAY(A2) returns 4, since Sunday is 1 there. To flag weekends regardless of locale: =IF(WEEKDAY(A2, 2) > 5, "Weekend", "Weekday"). For the day name itself, =TEXT(A2, "dddd") returns "Wednesday". WEEKDAY is the building block for any logic that depends on the day of the week — weekend flags, shift schedules and day-based filters — because a plain number is easy to compare and feed into other formulas. One habit worth forming early: name the cells that hold your inputs, so the formula reads in plain language instead of a string of cell addresses. A reviewer — or you in three months — can then follow the logic without decoding what B7 and D2 were supposed to mean, which is most of what makes a sheet maintainable.
In Google Sheets
If you are in Google Sheets rather than Excel, the good news is that the formula shown here is identical and the workflow barely changes — menus sit across the top instead of in a ribbon, and a few function names differ slightly, but anything you build here moves across with little or no rework. The aim was to get you unstuck fast and leave you a little more capable than a copy-paste would. The answer is at the top, the tool proves it, and the detail above shows why it holds — so the next time a colleague asks, you can answer without reaching for search. Here is the takeaway for “excel get weekday from date”: copy the answer if you are busy, but if you have a spare few minutes, rebuild the example in Excel yourself with the tool above open beside it. That single pass — type it, run it, watch the result move when you change an input — is what turns a formula you found into a technique you trust. Keep your inputs labelled and referenced, never hard-coded, and the same sheet stays correct and auditable as it grows. Done that way, you will not need to look this up again, and you will be the person others ask.
Common mistakes
- Expecting a day name —
WEEKDAYreturns a number; use TEXT(date, "dddd") when you want the word. - Forgetting the return_type and assuming Monday is 1 — with the default, Sunday is 1 and Monday is 2, which shifts every weekend test.
- Pointing
WEEKDAYat text that looks like a date but is not a real date value, which gives a#VALUE!error; convert it withDATEVALUEfirst.
Frequently asked questions
How do I make Monday equal 1?
Pass 2 as the second argument: =WEEKDAY(A2, 2) numbers Monday as 1 through Sunday as 7. Without it, the default return_type 1 makes Sunday 1 and Saturday 7.
How do I get the name of the day, not a number?
Use TEXT instead of WEEKDAY: =TEXT(A2, "dddd") returns the full day name such as "Wednesday", and "ddd" returns the short form "Wed".
How do I flag weekends with WEEKDAY?
Use return_type 2 and test for 6 or 7: =IF(WEEKDAY(A2, 2) > 5, "Weekend", "Weekday"). Because Saturday is 6 and Sunday is 7, anything above 5 is a weekend day.