본문 바로가기

3. FAQ (지식in, 엑셀위키)

[함수] 오류 값 또는 0값 처리하기

지난번 포스트에서 오류값 또는 0값이 발생했습니다. 어떻게 처리하면 좋을까요?

 - https://mwoe.tistory.com/219

저 샾(#)과 초록색태그가 참 눈에 거슬린다...

 

오류값이 발생했을때 대처법 (IFERROR)

 

1. 가장 많이 쓰는 방법은 IFERROR 함수를 사용하는 것입니다.

=IFERROR(결과값,"-")
=IFERROR(VLOOKUP(A13,$G$2:$G$9,1,0),"-")
[수식 설명]
IFERROR(결과값,"-") = 결과값이 에러라면, 하이픈 (-)으로 표시하고, 아니라면 원래값을 돌려줄 것.
IFERROR(VLOOKUP(A13,$G$2:$G$9,1,0),"-") = VLOOKUP으로 나온 값이 에러라면, 하이픈 (-)으로 표시하고, 아니라면 찾은 값을 돌려줄 것.

에러가 있다면 "-"값으로 돌려준다.

 

2. 이 중에 N/A로 나오는 에러만 대처하고 싶은 경우에는, ISNA라는 특별한 함수를 쓸 수도 있습니다.

원래 오류에는 (무려) 9가지 종류가 있습니다...!

 - #DIV/0 ,#N/A, #NAME?, #NULL!, #NUM!, #REF!, #VALUE!, #####, 순환 참조까지...

다만 ISNA 함수는 값을 바로 돌려주지 않고, TRUE/FALSE값만을 줍니다.

때문에 실제 결과값을 보고싶으면 IF문을 통해서 추가 작업까지 수행을 해야합니다.

=ISNA(결과값)
=IF(ISNA(MATCH(A3,$H$3:$H$10,0)),"-",A3)
[수식 설명]
=ISNA(결과값) = 결과값이 #N/A라면, TRUE를 아니라면 FALSE를 돌려줄 것
=IF(ISNA(MATCH(A3,$H$3:$H$10,0)),"-",A3) = MATCH함수로 나온값이 #N/A라면 TRUE이므로 하이픈 (-)을, #N/A가 아니라면 FALSE이므로 A3값을 그대로 돌려줄 것.

IF까지 써야, 값이 정확히 구별된다.

 

오류는 아니지만, 0과 1을 구별하고 싶을 때 (IF)

3. 오류는 아니지만, 0으로 반환된 값을 바꾸고 싶을 때는 IF문을 사용하면 됩니다.

 - IF는 0을 FALSE로, 나머지 모든 숫자를 TRUE로 생각합니다.

 - 다만 IF의 조건 부분에 텍스트가 들어가면 #VALUE 오류를 띄웁니다.

=IF (0 or 그 외 숫자 - 음수포함)
=IF(COUNTIF($H$3:$H$10,A3),A3,"-")
[수식 설명]
IF (0 or 숫자 or 텍스트) = 결과값이 0이라면 FALSE로 인식, 아니라면 TRUE로 인식, 문자/텍스트라면 #VALUE 오류로 인식
COUNTIF(범위, 값) = 범위내에 해당 값이 몇개인지 돌려줄 것 (없다면 0)
IF(COUNTIF($H$3:$H$10,A3),A3,"-") = COUNTIF의 결과값이 0이라면 하이픈(-)을, 아니라면 A3값을 그대로 돌려줄 것.

IF문을 쓰면 COUNTIF에 따라 수량이 0이라면 FALSE를 줄 수 있다.

 

오류값 처리하기.xlsx
0.01MB