What SEQUENCE Generates

SEQUENCE builds a block of sequential numbers. You control the row count, column count, starting value, and step size. The result is a live array, so changing any input reshapes the whole block. That beats filling handles because there is no static trail of numbers to maintain or accidentally overwrite.

Excel sheet showing a SEQUENCE formula spilling a 30-day date column and a 1-to-10 number column

The Syntax in Plain Terms

SEQUENCE takes rows, columns, start, and step. Rows and columns default to 1, start defaults to 1, and step defaults to 1. If you only need a single column, set columns to 1 or leave it out. The step can be negative to count backward, which is handy for a countdown or a reverse date list.

1
Build a 1-to-10 column

Type =SEQUENCE(10, 1, 1, 1) and press Enter. Excel spills the numbers 1 through 10 down the column. The first 10 is the row count, the second 1 is the column count.

2
Build a row instead

Use =SEQUENCE(1, 10, 1, 1) to spill 1 through 10 across a row instead of down. Swap the row and column arguments whenever you need a horizontal header.

3
Start at a different number

Set the third argument, like =SEQUENCE(5, 1, 100, 1), to list 100, 101, 102, 103, 104. The start value can be any number, including a negative one for special indexes.

4
Change the step size

Use =SEQUENCE(5, 1, 0, 5) to get 0, 5, 10, 15, 20. The fourth argument is the increment. A step of 2 gives odd or even lists, and a negative step counts down.

Build Date Ranges With SEQUENCE

Dates are just numbers in Excel, so SEQUENCE can generate them by stepping 1 day at a time from a start date. Wrap the result in the DATE function for clean inputs, then format the cells as dates. I build month and quarter headers this way for every recurring report.

5
List 30 consecutive days

Write =SEQUENCE(30, 1, DATE(2026,1,1), 1) and format the cells as dates. You get Jan 1 through Jan 30, 2026, with no manual fill. Change 30 to extend the range instantly.

6
Step by 7 for weeks

Use =SEQUENCE(12, 1, DATE(2026,1,1), 7) for 12 weekly dates a week apart. This is a quick way to label a Monday-only report header without thinking about month lengths.

7
End on a specific date

To stop at a fixed end date, compute the count: =SEQUENCE(EndDate-StartDate+1, 1, StartDate, 1). Put the dates in cells and the series always runs exactly to the end without guessing the row count.

Pro Tip

I recommend wrapping a date SEQUENCE in the DATE function rather than typing a raw serial number like 46052, because the formula stays readable six months later. A common mistake is writing =SEQUENCE(30,1,46052,1) and then nobody on the team can tell which month it starts in. DATE(2026,1,1) makes the intent obvious and avoids off-by-one errors.

Generate Test IDs and Sample Rows

SEQUENCE is my go-to for sample data. A column of IDs plus a few RANDARRAY columns gives you a fake Orders table to test FILTER, SORT, and UNIQUE against, with no copy-paste from production. Keep the volumes small so the sheet stays fast.

8
Make an ID column

Write ="ORD-"&SEQUENCE(50, 1, 1001, 1) to create order IDs ORD-1001 through ORD-1050. Concatenating text with SEQUENCE gives labeled keys you can use as a primary key in tests.

9
Add random amounts

In the next column use =RANDARRAY(50, 1, 50, 5000, FALSE) for whole-dollar amounts between $50 and $5,000. Pair it with the ID column to mock an Orders table for practice.

10
Add random regions

Use =CHOOSE(RANDBETWEEN(1,3,SEQUENCE(50)),"West","East","North") to assign a region per row. Now you have a realistic three-column sample to run the other dynamic array functions on.

Generate Weekday and Month Labels

SEQUENCE builds the numbers, but wrapping it in TEXT turns those numbers into readable labels. I use this to print Monday-through-Friday headers or a month name per row without typing a calendar by hand. The labels stay live, so extending the series extends the labels.

11
Weekday headers

Write =TEXT(SEQUENCE(5,1,DATE(2026,1,5),1), "ddd") to spill Mon, Tue, Wed, Thu, Fri starting from Jan 5, 2026, which is a Monday. The ddd format gives the short weekday name for each date in the series.

12
Month names per row

Use =TEXT(SEQUENCE(12,1,DATE(2026,1,1),31), "mmm") for a Jan-through-Dec list. The step of 31 lands on the first of each month, and mmm shows the month label. A real date under the hood keeps sorting correct.

13
Full date display

Wrap with "mmm d, yyyy" like =TEXT(SEQUENCE(30,1,DATE(2026,1,1),1), "mmm d, yyyy") for Jan 1, 2026 style headers. The underlying value stays a date, so charts treat it as time, not text.

Build a 2D Number Grid

Setting both rows and columns turns SEQUENCE into a matrix. This is useful for multiplication tables, coordinate labels, or any layout that needs a numbered grid. The step applies within each row before moving to the next.

14
Make a 5-by-5 grid

Write =SEQUENCE(5, 5, 1, 1) for a 5-row, 5-column block numbered 1 to 25. Each row continues the count from the previous one. Use it as a quick index map.

15
Step across columns

Use =SEQUENCE(3, 4, 10, 10) to get 10, 20, 30, 40 across the top row and continuing down. The step of 10 applies left to right, then the next row picks up where the last ended.

16
Label a matrix

Combine with TEXT to label cells, like ="R"&SEQUENCE(3,1)&"C" for row tags. SEQUENCE inside text gives you structured labels for a small grid without manual typing.

Chain SEQUENCE With INDEX and TEXT

SEQUENCE becomes powerful when it drives another function. Feed its numbers into INDEX to pull every Nth row, or into TEXT to format a date series. The array stays live, so the downstream result reshapes with it.

17
Every Nth row via INDEX

Write =INDEX(Sales[Amount], SEQUENCE(10,1,1,2)) to return every second amount from the Orders table. SEQUENCE supplies the row positions 1, 3, 5 and so on, and INDEX fetches them.

18
Format the date series

Wrap with TEXT: =TEXT(SEQUENCE(30,1,DATE(2026,1,1),1), "mmm d") for clean Jan 1 style labels. The numbers stay real dates underneath while the display is short.

19
Reverse a list

Use =INDEX(data, SEQUENCE(ROWS(data),1,ROWS(data),-1)) to flip a column bottom to top. SEQUENCE counts down from the last row, and INDEX returns rows in that reversed order.

Watch Out

A common mistake is setting rows from a count that includes a header, so the series starts one row too low and misaligns with the data. If your data is A2:A101, the count is 100, not 101. This will break an INDEX lookup that expects row 1 to mean the first data row. Always subtract the header when converting a range to a count.

Why SEQUENCE Throws #SPILL! and #NAME?

SEQUENCE fails for the same two reasons as the other dynamic array functions: a blocked spill area, or an Excel version too old to have it. The fixes are identical and quick.

20
Clear the spill path

If you see #SPILL!, clear the cells below or to the right of the formula. SEQUENCE needs a rectangle sized rows by columns, so any blocker stops the spill.

21
Confirm the version

SEQUENCE requires Excel 365 or Excel 2021. On Excel 2019 or earlier you get #NAME?. Upgrade, or build the series with a fill handle for a static list.

22
Avoid a negative row count

Rows and columns must be positive whole numbers. A zero or negative value returns #VALUE!. If the count comes from a formula, wrap it with MAX(1, ...) so it never drops below 1.

SEQUENCE vs Dragging the Fill Handle

The fill handle writes static numbers you must redo when the range changes. SEQUENCE writes one formula that reshapes itself. For a one-time list the handle is fine, but for any series tied to a variable count or a date that moves, SEQUENCE saves real time.

When you practice, build a sample Orders table with SEQUENCE and RANDARRAY, then run FILTER and SORT on it. That loop is how the dynamic array functions start to feel natural.

Pro Tip

I recommend pairing a SEQUENCE date column with a header in row 1, so the spill sits under a clear Report Date Column instead of a blank cell. A common mistake is building the series in A2 while your lookup table starts at A1, so =FILTER(Sales[Amount],Sales[Date]=A2) returns nothing for the first row. I always subtract the header offset when the count comes from a formula, and I check the spill covers every row before I send the report.

Next Steps and a Quick Checklist

Build a number column, then a date column, then a sample ID list. Chain SEQUENCE into INDEX and TEXT to see it drive other functions. Keep the row count tied to a cell so the series grows when you need more rows.

Functions to learn next are RANDARRAY for sample values, UNIQUE to dedupe the series, and FILTER to pick rows from a SEQUENCE-built table. Together they cover most generated-data needs without manual entry.