N() returns the input as is if the input is a number: A1 = 5, N(A1) >> 5.

N() returns 1 if the input is the logical TRUE: A1 = TRUE, N(A1) >> 1. When A1 = FALSE, N(A1) >> 0.

N() return the input an error value input as is if the input is an error value: for example, A1 =

#REF !, N(A1) >>

#REF !.

N() call in the SUMPRODUCT formula we have uses the first case. SUMPRODUCT cannot access the results of INDIRECT("'"&SheetList&"'!A1"). We call this phenomenon

*dereferencing problem*, the solution of which requires a

*second round of evaluation*, that is, we need to evaluate the results of INDIRECT("'"&SheetList&"'!A1"). This is done here with feeding the results to N() that makes them visible to the outer SUMPRODUCT.

Hope this helps.