엑셀 수식에 오류가 발생하면 #DIV/0!, #N/A, #NAME? 등과 같이 '#'으로 시작하는 오류가 표시됩니다.
IFNA 함수는 오류 중에서 #N/A 오류만 처리하고 나머지 오류는 처리하지 않고 원래의 오류를 그대로 표시합니다.N/A는 영어로 Not Available, No Answer 등을 의미합니다. '해당사항 없음', '값 없음' 정도로 해석할 수 있습니다. VLOOKUP, MATCH 등 찾기 함수를 사용했을 때 찾는 값이 없으면 #N/A가 표시되는데 IFNA 함수를 사용하여 #N/A로 표시되는 오류를 '찾는 값 없음'으로 표시할 수 있습니다.
*오류의 종류는 다음의 링크를 참고하세요.
엑셀 오류표시(#DIV/0!,#N/A,#NAME?,#NULL!,#NUM!,#REF!,#VALUE!)와 해결방법
구문(Syntax)
IFNA(value, value_if_na)
수식에서 #N/A 오류가 발생하면 사용자가 지정한 값을 반환한다.
인수
- value : 입력된 수식
- value_if_na : 수식에서 #N/A에러가 발생하면 대신 표시할 값
사용 예
1) 찾는 값이 없을 때 IFNA 함수로 오류 처리
다음 그림과 같이 VLOOKUP함수를 사용할 때 찾는 값이 없으면 #N/A오류가 표시됩니다.
=VLOOKUP(B11,B4:C8,2,FALSE)
찾아서 값이 없으면 #N/A대신 '찾는 값이 없음'으로 표시하려면 IFNA 함수를 사용하여 다음과 같이 수식을 입력합니다.
=IFNA(VLOOKUP(B15,$B$4:$C$8,2,FALSE),"찾는 값이 없음")
16행을 보면 사번 1007은 없으므로 '찾는 값이 없음'으로 정상적으로 결과가 표시됩니다.
17행에서는 사번 1007을 그대로 입력했는데 #NAME? 오류가 발생했습니다. 17행의 수식에서 VLOOKUP 함수의 첫 번째 인수를 잘못 입력('B17'을 입력해야 하는데 실수로 'ZZ'을 입력)하여 '찾는 값이 없음'이 표시되지 않고 #NAME? 오류가 발생했습니다.
#NAME 오류는 참조하는 이름이 잘못되었을 경우에 발생합니다. IFNA 함수는 찾는 값이 없을 때 발생하는 #N/A오류만 처리해 주므로 당연히 #NAME? 오류가 발생합니다.
2) 찾는 값이 없을 때 IFERROR 함수로 오류 처리
위와 동일한 경우에 IFNA 함수 대신 다음과 같이 IFERROR 함수를 사용하면 오류가 제대로 표시되지 않고 '찾는 값이 없음'으로 표시됩니다.
=IFERROR(VLOOKUP(B22,$B$4:$C$8,2,FALSE),"찾는 값이 없음")
24행의 수식에서 VLOOKUP 함수의 첫 번째 인수를 잘못입력('B24'를 입력해야 하는데 실수로 'ZZ'을 입력)했으므로 #NAME? 오류가 발생해야 하는데 '찾는 값이 없음'으로 잘못 표시됩니다.
IFERROR 함수는 오류의 종류를 구분하지 않고 모든 오류를 지정한 값으로 바꿔주기 때문에 인수를 잘못 입력했음에도 불구하고 오류를 정확하게 표시하지 않고 '찾는 값이 없음'으로만 표시해 주므로 오류를 찾기가 어려운 문제가 있습니다.
따라서 찾기 함수(VLOOKUP, MATCH등)를 사용하여 '찾는 값이 없을 때의 오류처리'는 IFERROR 함수 대신 IFNA 함수를 사용해야 합니다.
관련 글