Explanation

Normally, the MATCH function receives a single lookup value, and returns a single match if any. In this case, however, we are giving MATCH an array for lookup value, so it will return an array of results, one per element in the lookup array. MATCH is configured for “exact match”. If a match isn’t found, MATCH will return the #N/A error. After match runs, it returns have something like this:

=SUMPRODUCT(--(ISNA({3;5;6;2;#N/A;4})))>0

We take advantage of this by using the ISNA function to test for any #N/A errors.

After ISNA, we have:

=SUMPRODUCT(--({FALSE;FALSE;FALSE;FALSE;TRUE;FALSE}))>0

We use the double negative (double unary) operator to convert TRUE FALSE values to ones and zeros, which gives us this:

=SUMPRODUCT({0;0;0;0;1;0})>0

SUMPRODUCT then sums the elements in the array, and the result is compared to zero for force a TRUE or FALSE result.

Explanation

Working from the inside out, the ISNUMBER function will return TRUE when given a number and FALSE if not. When you supply a range to ISNUMBER (i.e. an array ), ISNUMBER will return an array of results. In the example, the range C5:C9 contains 5 cells, so the array returned by ISNUMBER contains 5 results:

{FALSE;FALSE;FALSE;TRUE;FALSE}

TRUE values represent numeric values.

We want to know if this result contains any TRUE values, so we use the double negative operator (–) to force the TRUE and FALSE values to 1 and 0 respectively. This is an example of boolean logic , and the result is an array of 1’s and 0’s:

{0;0;0;1;0}

We use the SUMPRODUCT function to sum the array:

=SUMPRODUCT({0;0;0;1;0})

Any sum greater than zero means at least one number exists in the range, so we use “>0” to force a final result of TRUE or FALSE.