안녕하세요, 데이터매니저입니다. 회사에서 인사 평가 등급을 매기거나, 고객의 구매 금액에 따라 VIP, 골드, 실버 등급을 자동으로 부여하는 수식을 짤 때 어떤 함수를 가장 먼저 떠올리시나요? 열에 아홉은 조건 함수의 대명사인 'IF'를 떠올리실 겁니다.
하지만 조건이 3개, 4개로 늘어나는 순간 시트 위에는 지옥도가 펼쳐집니다. =IF(A2>90, "VIP", IF(A2>80, "골드", IF(A2>70, "실버", "일반"))) 처럼 IF 함수 안에 또 IF를 넣고, 그 안에 또 IF를 밀어 넣는 일명 '중첩 IF 괄호 지옥'이 시작되죠. 괄호를 하나라도 덜 닫거나 쉼표를 잘못 찍으면 즉각 수식 오류가 발생하며, 나중에 조건 기준이 바뀌어 수식을 수정하려 들면 본인이 짜놓고도 해독이 불가능한 상태가 됩니다. 오늘은 이 복잡한 중첩 IF문을 단 한 줄로 깔끔하게 정리해 버리는 직장인들의 구원자, 'IFS'와 'SWITCH' 함수의 완벽한 실전 활용법과 오류 방어 팁을 명쾌하게 해부해 드립니다.
더 이상 괄호 개수를 세지 마세요: 직관적인 'IFS' 함수
조건이 여러 개일 때 IF를 계속 중첩하는 원시적인 방법을 완벽하게 박살 내는 함수가 바로 'IFS'입니다. (엑셀 2019 이상 버전 및 구글 스프레드시트에서 완벽하게 지원합니다.)
IFS 함수의 원리는 아주 단순하고 직관적입니다. "조건1이 맞으면 결과1을 내놓고, 조건2가 맞으면 결과2를 내놔라"라는 인간의 사고방식과 똑같이 수식을 쉼표로 나열하기만 하면 됩니다.
기본 수식:
=IFS(조건1, 결과1, 조건2, 결과2, 조건3, 결과3...)
앞서 예로 들었던 등급 산정 수식을 IFS로 바꾸면 어떻게 될까요?
변경된 수식:
=IFS(A2>90, "VIP", A2>80, "골드", A2>70, "실버")
IF라는 단어를 반복해서 쓸 필요도 없고, 수식 맨 끝에 괄호를 ))) 이렇게 여러 번 닫을 필요도 없이 딱 한 번만 닫으면 끝납니다. 수식이 옆으로 길어지지 않으니, 훗날 담당자가 바뀌어 인수인계를 하더라도 누구나 한눈에 "아, 90점 넘으면 VIP구나"라고 즉각 해독할 수 있는 엄청난 유지보수 효율을 자랑합니다.
1:1 매칭의 끝판왕: 'SWITCH' 함수로 코드 변환하기
IFS보다 수식을 더 짧고 스마트하게 줄일 수 있는 상황이 있습니다. 점수처럼 '크다/작다(>, <)'의 논리 범위 조건이 아니라, "부서 코드가 A면 인사팀, B면 영업팀, C면 마케팅팀"처럼 정확히 1:1로 떨어지는 텍스트 값을 변환해야 할 때입니다. 이때는 'SWITCH' 함수가 압도적으로 편리합니다.
SWITCH 함수는 기준이 되는 셀(Target)을 맨 앞에 딱 한 번만 적어두고, 그 뒤로는 매칭할 짝꿍들만 나열해 주면 엑셀이 알아서 척척 변환해 줍니다.
기본 수식:
=SWITCH(기준셀, 찾을값1, 결과1, 찾을값2, 결과2, 찾을값3, 결과3...)
만약 B2 셀에 있는 부서 코드를 한글 부서명으로 바꾼다면 이렇게 적습니다.
실전 수식:
=SWITCH(B2, "A", "인사팀", "B", "영업팀", "C", "마케팅팀")
IFS 함수였다면 B2="A", B2="B"처럼 B2=라는 기준을 매번 반복해서 적어야 했겠지만, SWITCH는 기준 셀을 맨 앞에 한 번만 선언하므로 수식의 길이가 획기적으로 짧아집니다. 실무에서 VLOOKUP을 쓰기에는 참조 표를 따로 만들기 번거로운 소규모 코드 변환 작업 시, 이 SWITCH 함수 하나면 모든 것이 깔끔하게 해결됩니다.
IFS 함수의 치명적 함정: #N/A 오류를 막는 'TRUE' 방어막 (주의사항)
아주 강력한 두 함수지만, 실무에서 IFS 함수를 처음 쓰는 분들이 100% 겪는 뼈아픈 에러가 하나 있습니다. 바로 지정해 둔 조건에 아무것도 해당하지 않을 때 엑셀이 가차 없이 '#N/A (값 없음)' 오류를 뱉어낸다는 점입니다.
기존의 IF 함수는 IF(조건, 참일때, 거짓일때) 구조라서, 조건에 안 맞으면 마지막에 적어둔 "거짓일때"의 값이 출력되었습니다. 하지만 IFS 함수는 '나머지 모든 경우(Else)'를 한 번에 처리하는 기본 옵션 자리가 없습니다. 그래서 A2 셀의 값이 60점이라서 VIP, 골드, 실버 그 어느 조건에도 맞지 않으면 갈 곳을 잃고 오류를 띄우는 것이죠.
이 에러를 완벽하게 방어하려면 수식의 가장 마지막 조건 자리에 무조건 'TRUE'라는 단어를 강제로 적어 넣어야 합니다.
완벽 방어 수식:
=IFS(A2>90, "VIP", A2>80, "골드", A2>70, "실버", TRUE, "일반")
엑셀에게 "앞에서 말한 조건들에 다 안 맞으면, 마지막엔 무조건 참(TRUE)으로 치고 '일반'이라고 적어줘!"라고 보험을 걸어두는 것입니다. 이 TRUE 마감법을 기억하지 못하면 군데군데 뚫린 오류 때문에 전체 시트의 SUM 합계까지 마비되는 대참사를 겪게 되므로 꼭 습관화하시길 당부드립니다.
오늘 다룬 복잡한 함수 중첩을 벗어나는 핵심 포인트들을 정리해 드립니다.
조건이 3개 이상일 때 IF 문을 계속 중첩하면 수식이 길어지고 괄호 오류가 나기 쉬우므로, 직관적으로 나열하는 IFS 함수로 대체하여 가독성을 높입니다.
값의 크고 작음을 비교하는 것이 아니라 1:1로 코드를 변환할 때는, 기준 셀을 한 번만 적는 SWITCH 함수가 수식 길이를 가장 획기적으로 줄여줍니다.
IFS 함수 사용 시 조건에 맞지 않는 나머지 예외 데이터가 #N/A 오류를 내는 것을 막기 위해, 수식 맨 끝에
TRUE, "기본값"형태의 방어막을 반드시 설정해야 합니다.
다음 12편에서는 데이터를 한눈에 띄게 꾸미려다 오히려 색상이 뒤죽박죽 엉켜버려 실무자들을 당황하게 만드는 현상, 바로 ‘조건부 서식(Conditional Formatting) 규칙 충돌로 색상이 엉뚱하게 변할 때 정리법’에 대해 알아보겠습니다. 알록달록 꼬여버린 우선순위 현상을 풀고 시트를 깔끔하게 통제하는 고수의 서식 정리 비법을 다음 시간에 공개합니다!
여러분은 IF 함수 괄호를 여러 번 닫다가 오류 창이 떠서 수식을 처음부터 다시 써본 경험이 있으신가요? 오늘 배운 IFS와 SWITCH 함수로 수식을 절반으로 줄여본 상쾌한 후기를 댓글로 자유롭게 남겨주세요!
0 댓글