Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

Excel

엑셀에서 IFERROR 및 ISERROR 대신 IFNA를 사용하세요

권현욱(엑셀러) 2026. 3. 5. 17:00
반응형

들어가기 전에

Excel에서 IFERROR 함수를 사용하여 오류를 처리하는 경우, 중요한 구조적 및 데이터 문제를 가릴 수 있습니다. IFNA 함수는 모든 심각한 문제를 디버깅을 위해 표시해 주기 때문에 좋은 옵션이 될 수 있습니다. IFERROR가 위험(?)한 이유와, IFNA가 더 나은 솔루션인 이유 등을 소개합니다.

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft MVP · 엑셀 솔루션 프로바이더 · 작가

아이엑셀러


이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.

  • 원문: Stop using IFERROR and ISERROR in Excel: Use IFNA instead
  • URL: https://www.howtogeek.com/microsoft-excel-functions-stop-using-iferror-iserror-use-ifna/

IFERROR 함수가 위험(?)한 이유

IFERROR의 가장 큰 위험은 너무 광범위하여 모든 유형의 Excel 오류를 포착 하고 단일 값으로 대체한다는 것입니다. 이로 인해 실제 데이터 품질이나 계산 오류를 파악하고 디버깅하는 데 방해가 됩니다.

 

급여 계산서를 작성 중이라고 가정해 보겠습니다. 다음 단계는 각 직원의 총 급여를 계산하는 것입니다.

 

howtogeek

 

D2 셀에 입력된 수식은 다음과 같습니다.

=[@Base]+[@Bonus]

 

howtogeek

 

보너스 열에 "TBC"와 같은 텍스트 문자열이 포함되어 있으면 수식은 #VALUE! 오류를 반환합니다.

 

howtogeek

 

이런 경우, IFERROR 함수를 추가하여 다음과 같이 할 수 있습니다.

=IFERROR([@Base]+[@Bonus], [@Base])

 

  • [@Base]+[@Bonus]는 핵심 계산으로 유지됩니다.
  • [@Base]는 계산이 실패할 경우 Excel에 기준 값을 반환하도록 지시합니다.

 

이제 보너스 열의 셀에 텍스트 문자열이 포함되어 있으면 IFERROR가 #VALUE! 오류를 가로채고 기준 값을 복제합니다.

 

테스트: 구조적 실패 처리 (보너스 열 삭제됨)

지금까지는 괜찮습니다. 하지만 IFERROR가 이 데이터 품질 문제를 더 심각한 구조적 문제와 동일하게 취급한다는 위험이 있습니다.

누군가 실수로 보너스 열을 삭제했다고 가정해 보겠습니다. 다음과 같은 일이 발생합니다.

  • 핵심 표현식은 Bonus 열을 참조할 수 없기 때문에 #REF!를 반환합니다.
  • IFERROR 함수의 대체 항목은 여전히 ​​Base 열이며, 그대로 유지됩니다.

 

howtogeek

 

결과적으로 스프레드시트에 심각한 구조적 오류가 있다는 사실이 명확하게 알려지지 않았지만 결과는 여전히 정확한 것처럼 보입니다.

대안 1: IF(ISERROR)

IF와 ISERROR를 결합하면 동일한 셀 내에서 두 가지 서로 다른 시나리오에서 무슨 일이 일어나야 하는지 명확하게 정의해야 합니다.

  • 오류가 감지된 경우(TRUE): 미리 정의된 오류 처리 값을 반환합니다.
  • 오류가 감지되지 않은 경우(FALSE): 원래의 핵심 계산을 반환합니다.

 

이렇게 하면 오류 처리를 더 잘 제어할 수 있고 수식의 핵심 논리와 오류 처리 논리를 분리할 수 있어 수식을 더 쉽게 읽고 디버깅할 수 있습니다.

 

Total 열에 입력된 수식은 다음과 같습니다.

=IF(ISERROR([@Base]+[@Bonus]), [@Base], [@Base]+[@Bonus])

 

  • 수식은 핵심 계산([@Base]+[@Bonus])으로 시작합니다.
  • 이 계산 결과는 ISERROR 함수에 전달되는데, 오류가 있으면 TRUE를 반환하고, 오류가 없으면 FALSE를 반환합니다.
  • ISERROR 평가 결과는 IF 함수 에 전달됩니다 .
  • IF 함수가 TRUE(오류 있음)를 반환하면 기준 값을 반환합니다. FALSE(오류 없음)를 반환하면 핵심 계산을 반환합니다.

 

howtogeek

 

테스트 1: 텍스트 처리

위의 예와 동일한 시나리오를 살펴보겠습니다. 보너스 열의 텍스트로 인해 #VALUE! 오류가 발생하여 총 급여를 계산하지만 기본 급여로 돌아가려는 경우입니다.

  • 핵심 표현식은 추가에서 텍스트 문자열을 사용할 수 없기 때문에 #VALUE!를 반환합니다.
  • 결과적으로 ISERROR는 TRUE를 반환합니다.
  • IF 함수는 수식이 기준 값을 반환하도록 합니다.

 

howtogeek

 

IFERROR와 마찬가지로 #VALUE! 오류를 깔끔하게 처리합니다.

테스트 2: 구조적 오류 처리(기본 열 삭제됨)

그러나 Base 열이 삭제되면 IF(ISERROR)의 이점이 명확해집니다.

  • ISERROR는 #REF! 오류를 감지했기 때문에 TRUE를 반환합니다.
  • IF 함수는 수식이 기준 값을 반환하도록 강제합니다.
  • 하지만 Base 열이 손상되었기 때문에 수식은 #REF! 오류를 반환합니다.

 

howtogeek

 

이 결과는 구조적 문제를 해결해야 한다는 것을 정확하게 알려줍니다.

테스트 3: 구조적 실패 처리(보너스 열 삭제됨)

이 방법이 ISERROR를 사용하는 것보다 더 효과적이긴 하지만, 완벽한 해결책은 아닙니다. Bonus 열을 삭제하면 그 이유를 알 수 있습니다.

  • ISERROR는 #REF! 오류를 감지했기 때문에 TRUE를 반환합니다.
  • Base 열은 그대로 유지되므로 수식은 #REF! 오류를 마스크합니다.

 

howtogeek

 

결과적으로, 이 수식은 해결해야 할 문제가 있는 구조적 문제가 있음에도 불구하고 신뢰할 수 있는 결과를 내놓는 것으로 보입니다.

IFNA가 최고의 솔루션인 이유

IFNA는 세 가지 기능 중에서 타겟 오류 처리를 위한 가장 뛰어난 함수입니다. 왜냐하면 매우 선택적이어서 #N/A 오류만 포착하기 때문입니다.

이러한 선택성은 IFERROR와 ISERROR의 핵심적인 결함, 즉 #REF! 및 #VALUE!와 같은 위험한 오류를 가리는 경향을 직접적으로 해결합니다. Excel에서 비교적 심각한 #N/A 오류 만 찾도록 명시적으로 지정하면 다른 모든 심각한 오류가 표면화될 수 있으며, 이는 구조적 및 데이터 문제를 해결하기 위해 디버깅이 필요한 영역을 파악할 수 있음을 의미합니다.

도우미 열 사용

IFNA 전략을 사용하려면 다음 공식을 사용하여 도우미 열을 사용하여 예상 오류를 사전 처리해야 합니다.

=IF(ISTEXT([@Bonus]), NA(), [@Bonus])

 

보너스 열에 텍스트가 포함되어 있으면 ISTEXT는 TRUE를 반환하므로 #N/A 오류가 반환됩니다.

 

howtogeek

 

그렇지 않으면 보너스 값이 중복됩니다.

 

howtogeek

 

이제 Total 열에 다음 수식을 입력합니다.

=IFNA([@Base]+[@Helper], [@Base])

 

  • 수식은 핵심 계산([@Base]+[@Helper])으로 시작합니다.
  • Bonus 열에 텍스트가 있어서 Helper 열에 #N/A가 있는 경우 기준 값이 반환됩니다.
  • 도우미 열에 보너스 값이 포함되어 있으면 코어 계산 결과가 반환됩니다.

 

보너스 열에 숫자 값을 입력하면 다음과 같은 일이 발생합니다.

  • 도우미 열은 보너스 열과 중복됩니다.
  • 합계 열은 기본 값에 도우미 값을 더한 값입니다(이 값은 보너스 값과 같습니다).

 

howtogeek

 

테스트 1: 텍스트 처리

이제 보너스 열에 텍스트를 입력하세요.

 

  • ISTEXT가 TRUE를 반환하기 때문에 Helper 열은 #N/A를 반환합니다.
  • IFNA 계산이 #N/A로 평가되므로 기준 값이 합계 열에 반환됩니다.

 

howtogeek

 

테스트 2: 구조적 실패 처리(보너스 열 삭제됨)

보너스 열이 삭제되면 ISERRROR가 #REF! 오류를 마스크하고 IFNA는 이를 유지합니다.

  • Helper 열은 더 이상 Bonus 열을 참조할 수 없으므로 #REF!를 반환합니다.
  • Total 열의 IFNA는 Helper 열에 #N/A 오류가 아닌 #REF! 오류가 있기 때문에 #REF!를 반환합니다.

 

howtogeek

 

결과적으로 발생하는 #REF! 오류는 스프레드시트에 심각한 구조적 문제가 있음을 경고합니다.

테스트 3: 구조적 오류 처리(기본 열 삭제됨)

IFNA는 Base 열이 삭제된 경우에도 구조적 오류를 표시합니다.

  • Helper 열은 Bonus 열만 참조하므로 #N/A를 반환합니다.
  • 그러나 IFNA 수식에는 Base 열을 참조하려고 할 때 #N/A 오류가 아닌 #REF! 오류가 포함되어 있기 때문에 Total 열은 #REF!를 반환합니다.

 

howtogeek

 

IFNA가 승리하다

위의 모든 테스트에서 볼 수 있듯이 IFNA 함수는 대비한 오류만 처리하고, 그 외의 모든 오류는 즉각적인 디버깅이 필요한 심각한 문제임을 나타냅니다.

 

마치며

이상에서 소개한 내용을 바탕으로 안정적인 오류 처리를 위한 계층 구조를 정리하면 다음과 같습니다.

 

  • IFERROR: 오직 사소한 표시용 상황에서 사용(예: 예상되는 #N/A를 0으로 변환하는 것이 유일한 목적인 엑셀 차트용 보조 열)
  • IF(ISERROR): 단순하고 독립적인 계산에 절제해서 사용하되, 데이터 무결성 검사에는 피할 것
  • 모든 데이터 무결성 및 핵심 계산 수식에는 IFNA 사용