What #N/A actually means in Google Sheets
#N/A is the lookup miss. The formula ran. It did not find the value in the range you gave it. That is not a crash, not a broken file, and not a syntax error.
Recreate it on a blank sheet
Section titled “Recreate it on a blank sheet”- Open a blank spreadsheet. In A1 type
sku, B1name. A2101, B2Widget. A3102, B3Gadget. D1lookup, E1vlookup, F1match, G1filter. - In D2 type
999. That sku is not in column A. - In E2 enter
=VLOOKUP(D2,A2:B3,2,FALSE). The cell shows#N/A. The tooltip is Did not find value ‘999’ in VLOOKUP evaluation. - In F2 enter
=MATCH(D2,A2:A3,0). The cell shows#N/A. Same miss, different function. - In G2 enter
=FILTER(A2:B3,A2:A3=D2). The cell shows#N/A. The tooltip is No matches are found in FILTER evaluation.
Leave E2, F2, and G2 as the broken formulas. You now have three #N/A cells from one missing key.
What is actually wrong
Section titled “What is actually wrong”- The search value is not in the search range.
999is not in A2:A3. Sheets is telling you that, not failing to parse the formula. VLOOKUP,MATCH, andFILTERall use#N/Afor “no match.” The tooltip wording changes. The error value does not.- A value you can see can still miss. Number vs text (
101vs'101) and a trailing space are different keys. That is still#N/A. See VLOOKUP no match for those two cases. VLOOKUPthat searches the wrong column is also#N/A. If the name sits left of sku, that is lookup left of the key, not a missing sku.FILTER#N/Ais not only “zero rows.” A condition range of a different height is the same error value. See FILTER no match.
This is not #REF!. #REF! is a dead reference, a column index past the range, a spill overwrite, or a circular formula — see after you delete, VLOOKUP bad index, and circular dependency. The formula bar on this sheet still shows VLOOKUP, MATCH, and FILTER with real ranges. Nothing was deleted.
This is not a Formula parse error. A parse error is #ERROR! from commas vs semicolons on the spreadsheet locale. See locale parse error. #N/A means the formula parsed and ran.
Fix the match first. Wrapping hides a bad key as easily as it hides a real empty result.
Confirm the miss. In D2 type 101. E2 becomes Widget, F2 becomes 1, G2 spills 101 / Widget. Put 999 back in D2 so the three #N/A cells return. That check is the whole point of the recreate: if changing the lookup value makes the error come and go, the function is working and the key is wrong.
When the row should exist. Do not wrap yet. Check type and spaces (LEN, VALUE, TRIM) as on the VLOOKUP page. Point VLOOKUP at the column that actually holds the key. Make FILTER ranges the same height. Put the missing sku on the table if it belongs there.
When no match is a valid result. Then wrap. Leave E2 as the broken VLOOKUP. In E4 enter =IFNA(VLOOKUP(D2,A2:B3,2,FALSE),"none"). The cell shows none. In F4 enter =IFNA(MATCH(D2,A2:A3,0),"none"). The cell shows none. In G4 enter =IFNA(FILTER(A2:B3,A2:A3=D2),"none"). The cell shows none.
Use IFNA, not IFERROR, for a lookup miss. IFNA catches only #N/A. IFERROR also swallows #REF!, #DIV/0!, #NAME?, and a parse error, so a broken index or a deleted cell looks like “none.”
Do not wrap a miss you have not confirmed. If the sku is on the sheet and the formula still says #N/A, the key does not match. Fix that. IFNA will not.