Quick, clean, and to the point

Get first non-blank value in a list

Excel formula: Get first non-blank value in a list
Generic formula 

To get the first non-blank value (text or number) in a in a one-column range you can use an array formula based on the INDEX, MATCH, and ISBLANK functions.

In the example the formula we're using is: 


Note: this is an array formula and must be entered with Control-Shift-Enter.

How this formula works

So, the gist of the problem is this: We want to get the first non-blank cell, but we don't have a direct way to do that in Excel. We could use VLOOKUP with a wildcard * (see link below), but that will only work for text, not numbers.

So, we need to build the functionality we need by nesting formulas. On way to do that is to use an array function that "tests" cells and returns an array of TRUE/FALSE values that we can then match with MATCH.

Working from the inside out, ISBLANK evaluates the cells in the range B3:B11 and returns and array result that looks like this:


Each FALSE represents a cell in the range that is not blank.

Next, MATCH looks for FALSE inside the array and returns the position of the first match found, in this case 2. At this point, the formula in the example now looks like this:


Finally, the INDEX function takes over and gets the value at position 2 in the array, in the case the number 10.

First non-zero length value

To get the first non-zero length value, you can include the LEN function like this:


First numeric value

To get the first numeric value in a list, you can adapt the formula to use the ISNUMBER function, then change the logic to match TRUE instead of FALSE:


This is also an array formula, and must be entered with control+shift+enter.

Dave Bruns

Excel Formula Training
