Do you know why the formula works?
Will you remember when, at some point in the future, you have to maintain the worksheet?
Will someone else who has to maintain your work know?
Here are four issues to consider:
(1) Unlike others, I tend to shy away from implicit conversions and an understanding of esoteric XL conventions.
A simplified version of the problem you have can be stated as:
If in list1 and in list2 and not in list3 then...
where the last in the 'not eligible' check.
In XL, the MATCH function will yield a #N/A error if the value is *not* found in the table being searched. So, your problem becomes
if not ISNA(match1) and not isna (match2) and isna(match3)
One could code that directly. IMO, it would be the most obvious and straightforward solution that also happens to be a *normal* formula:
=IF(AND(NOT(ISNA(MATCH(H3,MSDiscMain,FALSE))),NOT(ISNA(MATCH(H3,Connect,0))),ISNA(MATCH(H3,NotEligible,0)))),10%,0%)
IMO, the above is far more understandable to someone (even yourself at a later date) than
=IF(COUNT(MATCH(NewProdList,MSDiscMain,0))*COUNT(MATCH(NewProdList,Connect,0))*(COUNT(MATCH(NewProdList,NotEligible,0))=0),10%,0%)
Why do I prefer the AND() approach? Just figure out how much knowledge about XL is required to understand the array formula. Contrast that with how *little* is left unstated in the AND() formula.
(2) Even if one was hell bent on saving a few key strokes...
Apply two of the basic laws of logic:
a = not not a
and
(not a) and (not b) = not (a or b)
to your condition to get:
if not (isna(match1) or isna (match2) or not isna(match3))
Hence, in this case, your problem collapses to another *normal* condition:
NOT(OR(ISNA(MATCH(H3,MSDiscMain,FALSE)),ISNA(MATCH(H3,Connect,0)),NOT(ISNA(MATCH(H3,NotEligible,0)))))
(3) On a slightly different note:
If you want, leverage the fact that in XL any expression within an arithmetic formula can be any sub-formula, however complex. This is overlooked by many, even most experts. So, one doesn't need
if(xxx,0.1,0); just 0.1*xxx will suffice -- or to be picky, 0.1*N(xxx).
Effectively, and using the original AND() formula, you would get the *regular* formula
=0.1*AND(NOT(ISNA(MATCH(H3,MSDiscMain,FALSE))),NOT(ISNA(MATCH(H3,Connect,0))),ISNA(MATCH(H3,NotEligible,0)))
(4) Something else that very few use, or even know -- and I have just started experimenting with -- is that an XL formula can be broken into multiple lines and can include spaces. [One caveat: since I shy away from overly complex formulas and also have just started playing with this, I don't know what, if anything, this technique breaks.] And, yes, below is exactly how the formula looks like in the XL cell or formula bar!
Code:
=IF(AND(
NOT(ISNA(MATCH(H3,MSDiscMain,0))),
NOT(ISNA(MATCH(H3,Connect,0))),
ISNA(MATCH(H3,NotEligible,0))),
10%,0%)
What can be easier to understand than this?