top of page

How to Create Index Columns Using Dynamically Spilled Arrays


How to Create Index Columns Using Dynamically Spilled Arrays

Add an index column to any dynamic array using a few of the latest Excel functions for easy lookups.


Contents:


How to Add an Index Column to a Dynamic or Spilled Array

Formula

This formula will add a numbered sequence, starting from 1, to the front of any array.

= HSTACK(SEQUENCE(ROWS(array)),array)


Explanation

Let's say that we're working on a lookup table for a list of customers.


We're starting off with a dynamic array in cell C4# that is linked to the table "Customer_Table", and automatically updates as the customer table does.

Spilled dynamic array

It can be useful to add an index column (a numbered column that increases by 1 for each entry), but to do this automatically we need a few different functions. HSTACK, SEQUENCE, and ROWS.

= HSTACK(SEQUENCE(ROWS(array)),array)

SEQUENCE Function

The first thing we need to understand is the sequence function. This function will create an incrementing list from any starting number. For example, the formula:

= SEQUENCE(5) 
excel sequence function to spill array

Creates a dynamic array that begins with the number 1, and increases by 1 each row, spilling downward.


This creates the basis for our index column. The next thing we need to know is how many rows are in our original array.


Counting the Number of Rows in Array

To count the number of rows in our array, and also know the number that the sequence function should increase too, we can use the ROWS function.


The ROWS function counts how many rows currently exist in a dynamic or spilled array.

excel ROWS function to count rows in spilled dynamic array

In this case, since our array is held in C4#, and is 6 rows long, the formula returns a 6.


This number is then fed into the SEQUENCE function, which creates a numbered list from 1 through 6.

Excel combining the ROWS function and SEQUENCE function

Now we just need to combine our index column with the rest of the dynamic array.


Combining Two Dynamic Arrays

To do that we'll use the HSTACK function. With HSTACK we can horizontally combine two different arrays together.


In this case, the two arrays that we want to combine are the index column, using the formula:

= SEQUENCE(ROWS(C4#))

As well as the rest of the array held in C4#.


Here are the two pieces we have to horizontally combine:

Combining Two Dynamic Arrays using HSTACK

To combine them, we just need to drop both arrays into HSTACK together with our final formula:

= HSTACK(SEQUENCE(ROWS(C4#)),C4#)
Combining two spilled arrays using HSTACK to create an index lookup column

bottom of page