본문 바로가기

업무 프로그램/MS 엑셀

IF 중첩을 간단하게 해주는 엑셀 IFS 사용법(IF에 조건 여러개), 오류처리 방법(IFERROR)

목차

    IF를 중첩해서 사용하는 경우는 AND 조건이나 OR 조건을 처리하기 위해서도 있지만

    특정 범위를 묶어서 처리하고자 할 때도 사용합니다.

    AND, OR 조건을 처리하기 위한 엑셀에서의 IF사용법은 아래 링크를 참조해 주시기 바랍니다.

    엑셀 IF(조건문)함수 기초
    엑셀 IF 함수 중첩 하기(조건 여러개 사용하기, AND, OR)

    특정 범위를 묶어서 처리한다니 말로 설명하니 어려운데 예제를 보면 쉬우니 바로 예제로 들어가겠습니다.

     

    엑셀 IFS 예시
    엑셀 IFS 예시

     

    파란색 표에 있는 점수 범위에 맞는 국,영,수,사,과의 점수에 맞는 등급을 넣고 싶습니다.

    IF로 만든다면 조금 복잡하지만 아래와 같이 될 것입니다.


    엑셀 IF 중첩을 이용한 등급 부여

    =IF(E2>=90,"1등급",IF(E2>=80,"2등급",IF(E2>=70,"3등급",IF(E2>=50,"4등급","5등급"))))

     

    엑셀 IF 중첩으로 등급 매기기 예시
    엑셀 IF 중첩으로 등급 매기기 예시

     

    F2에 입력된 수식으로 설명하겠습니다.

     

    1. 첫 번째 IF에서 점수가 90 이상이면 1등급을 출력하고 아니면 2번 IF문을 비교합니다.

    2. 두 번째 IF에서 80이상이면 2등급을 출력하고 아니면 3번 IF문을 비교합니다.

    *만약 90이상이라면 1번에서 이미 조건을 만족하여 1등급이 출력되었을 테니 2번 IF에서 비교할 때는 E2<90의 상태일 것입니다.

    3. 세 번째 IF에서 70이상이면 3등급을 출력하고 아니면 4번 IF문을 비교합니다.

    4. 네 번째 IF에서 50이상이면 4등급을 출력합니다. 지금까지 점수에 해당하지 않는 점수는 5등급을 출력하게 됩니다.

     

    등급이 5개만 되어도 벌써 복잡해지는 느낌입니다.

    구분은 비슷하지만 IF를 한 번만 쓰고 괄호를 더 적게 사용하는 IFS를 사용하여 간단히 줄여보겠습니다.

    참고로 IFS는 MS 오피스 365, MS 웹용 엑셀, 엑셀 2021, 엑셀 2019에서 사용 가능하며 127가지 조건을 비교할 수 있다고 합니다.

    만약 지원하지 않는 버전의 엑셀에서 IFS를 사용한다면 #NAME?이라는 오류가 날 것입니다.

    IFS라는 함수를 찾을 수 없다는 뜻입니다.

    엑셀에서 함수를 찾지 못했을 때 오류
    엑셀에서 함수를 찾지 못했을 때 오류

     

     


    엑셀 등급을 부여하는 IFS 함수 사용법

    등급을 부여했던 IF 중첩문을 IFS로 바꾸면 아래와 같습니다.

    IFS([Something is True1, Value if True1,Something is True2,Value if True2,Something is True3,Value if True3)
    =IFS(E2>=90,"1등급",E2>=80,"2등급",E2>=70,"3등급",E2>50,"4등급",TRUE,"5등급")

    전체적으로 중첩 IF문에서 IF와 괄호를 뺀 모습이지만 마지막 조건 전에 TRUE가 들어간다는 것만 주의해 주시면 됩니다.

    엑셀 IFS를 이용하여 IF 중첩 대신하기
    엑셀 IFS를 이용하여 IF 중첩 대신하기

    IFS를 이용하면 이렇게 등급을 부여하는 것에도 사용 가능하지만 코드를 이름으로 변환하는 것에도 사용 가능합니다.

    역시 말만 어렵지 예시를 보시면 간단합니다.


    엑셀 코드를 입력하면 이름을 찾아주기

    엑셀 IFS를 이용하여 코드로 이름 찾아오기
    엑셀 IFS를 이용하여 코드로 이름 찾아오기

    왼쪽 표(H, I열)에 있는 등급(H열)을 K2에 입력하면 I열에 있는 점수를 찾아서 L2에 입력이 되는 방식입니다.

    L2에 아래 수식을 입력해 주시면 됩니다.

    =IFS(K2=1,"100~90",K2=2,"90~80",K2=3,"80~70",K2=4,"70~50",K2=5,"50~0")

    만약 수식에 없는 등급을 입력한다면 #N/A라고 나옵니다.

    IFS에서 참조하는 표에 코드가 없을 때
    IFS에서 참조하는 표에 코드가 없을 때

    이렇게 에러를 그냥 두어도 되지만 보기 싫은 경우 IFERROR를 이용하여 처리해 줄 수 있습니다.


    엑셀 IFERROR를 이용한 오류 다루는 방법

     

    IFERROR를 이용하여 IFS에 해당하는 등급이 아니면 "없는 등급입니다."를 표시하도록 하였습니다.

     

    IFERROR(value, value_if_error)
    =IFERROR(IFS(K2=1,"100~90",K2=2,"90~80",K2=3,"80~70",K2=4,"70~50",K2=5,"50~0"),"없는 등급입니다.")