Exceljet

Quick, clean, and to the point

Sequence of days

Excel formula: Sequence of days
Generic formula 
=SEQUENCE(days,1,start_date,step)
Explanation 

To generate a series of dates by day, you can use the SEQUENCE function. In the example shown, the formula in E5 is:

=SEQUENCE(12,1,C4,1)

which generates a series of 12 dates, beginning with May 1, 2019, the date in C4.

How this formula works

The SEQUENCE function is a dynamic array function that can generate multiple results. When used by itself on the worksheet, SEQUENCE outputs an array of results that "spill" onto the worksheet in a "spill range".

SEQUENCE can generate results in rows, columns, or rows and columns. In this example, we are asking sequence for an array of numbers that is 12 rows by 1 column, starting with the date in C4, and incrementing by 1. Because dates in Excel are just serial numbers, and the date in C4 is equivalent to 43586, SEQUENCE outputs an array like this:

{43586;43587;43588;43589;43590;43591;43592;43593;43594;43595;43596;43597}

which spills into the range E5:E16.  When formatted as dates, these values show 12 consecutive dates beginning with May 1, 2019 and ending with May 12, 2019.

Workdays only

To use SEQUENCE to generate a series of dates that are workdays only, you can wrap SEQUENCE in the WORKDAY or WORKDAY.INTL function. In the example shown, the formula in G5 is:

{=WORKDAY.INTL(C4-1,SEQUENCE(12))}

Note: this is an array formula and must be entered with control + shift + enter. In addition, because this is a multi-cell array formula, you must select all 12 cells first to enter or edit the formula.

Here, inside the WORKDAY function, we first subtract 1 day from the starting date. We do this to force WORKDAY.INTL to evaluate the start date, and to begin the sequence on the start date.

Next, we use SEQUENCE to generate 12 sequential numbers:

Because the columns, start, and step arguments are all optional, this outputs an array like this:

{1;2;3;4;5;6;7;8;9;10;11;12}

These are the numbers provided as the "days" argument to WORKDAY.INTL. At each new row, WORKDAY.INTL calculates a workday n days in the future using the array delivered by SEQUENCE. WORKDAY.INTL automatically assumes Saturday and Sunday are "weekends" (not workdays) so these dates are excluded from results. WORKDAY.INTL can also be configured to handle custom weekends and holidays, as explained here.

This example uses "Dynamic Arrays", a beta feature in Excel currently available through the Office Insiders program. Expected release in 2019.
Author 
Dave Bruns

Excel Formula Training

Formulas are the key to getting things done in Excel. In this accelerated training, you'll learn how to use formulas to manipulate text, work with dates and times, lookup values with VLOOKUP and INDEX & MATCH, count and sum with criteria, dynamically rank values, and create dynamic ranges. You'll also learn how to troubleshoot, trace errors, and fix problems. Instant access. See details here.