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 shown, the formula in D10 is:


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

Generic formula



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 feed into the MATCH function.

Working from the inside out, the ISBLANK function evaluates the cells in the range B3:B11 and returns an array 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, which is 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 Profile Picture

AuthorMicrosoft Most Valuable Professional Award

Dave Bruns

Hi - I'm Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.