IFERROR(value, value_if_error) returns the value, or the fallback if the value is any error: #DIV/0!, #N/A, #VALUE!, #REF! and the rest. =IFERROR((C2-B2)/B2, "New") shows "New" for a product that had no sales last year instead of #DIV/0!.
IFNA(value, value_if_na) replaces only #N/A, the error a lookup gives when it finds nothing. Other errors still show.
That difference matters. IFERROR hides every error, including the ones that mean your formula is wrong, such as a misspelled range or a bad column number. A report full of blanks looks fine and is quietly wrong. So use IFNA around lookups, and IFERROR only where you know which error to expect, like a division that can hit zero.