Arte SheetsLearn. Try. Understand.

Date & Time

Count specific weekdays between two dates (e.g., Mondays in a month)

Jump to the first matching weekday on or after StartDate using MOD and WEEKDAY, then divide the remaining span by 7.

Fast arithmetic weekday counting over any date span

Generating an array of thousands of dates just to count Fridays wastes memory over multi-year contracts. Instead, find the first occurrence of TargetIsoDow (1 = Monday through 7 = Sunday) on or after StartDate: first = StartDate + MOD(TargetIsoDow - WEEKDAY(StartDate, 2) + 7, 7).

If first > EndDate, the count is 0; otherwise, every additional occurrence falls exactly 7 days later, giving INT((EndDate - first) / 7) + 1.

Use date-only values and an integer weekday from 1 through 7. Reject reversed date ranges and invalid weekday inputs; the formula itself does not validate them.

StartDate (A)EndDate (B)TargetIsoDow (C)Occurrences
2026-04-01 (Wed)2026-04-30 (Thu)1 (Monday)4 (Apr 6, 13, 20, 27)
2026-04-01 (Wed)2026-04-30 (Thu)3 (Wednesday)5 (Apr 1, 8, 15, 22, 29)

Closed-form weekday count formula

April 2026 starts on Wednesday (ISO 3) and ends on Thursday (April 30), so it contains 4 Mondays and 5 Wednesdays.

=LET(first, A2 + MOD(C2 - WEEKDAY(A2, 2) + 7, 7), IF(first > B2, 0, INT((B2 - first) / 7) + 1))

Short-interval zero-match boundary

Between Wednesday April 1 and Friday April 3, the first Monday is April 6 (> EndDate), so the formula cleanly returns 0.

=LET(first, A2 + MOD(3 - WEEKDAY(A2, 2) + 7, 7), IF(first > B2, 0, INT((B2 - first) / 7) + 1))

Try the example

Use the original values or change them to test your understanding.

Further reading