핵심 요약
대상 기능 및 수식명: IF, IFS, AND, OR, SWITCH
주요 해결 과제: 조건이 늘어날수록 괄호가 꼬여버리는 중첩 IF의 구조적 한계, 조건을 순서대로 나열하기만 하면 되는 IFS 작성법, 여러 기준을 동시에 혹은 하나라도 만족시켜야 하는 AND OR 결합, 코드값을 텍스트로 단순 치환할 때 쓰는 SWITCH
적용 가능 버전: IF AND OR는 Excel 전 버전, IFS와 SWITCH는 Excel 2019 이상 및 마이크로소프트 365
기대 효과: 인사평가 등급 산출 및 다중 기준 판별 자동화, 괄호 오류로 인한 수식 디버깅 시간 대폭 단축
1. 중첩 IF는 왜 조건이 늘어날수록 괄호 지옥이 되는가
실무에서 등급을 세 단계 이상으로 나누어 판별해야 하는 순간, IF 함수는 필연적으로 다른 IF 함수를 품는 중첩 구조로 변합니다. 조건이 하나 늘어날 때마다 여닫아야 할 괄호도 하나씩 늘어나는데, 이 괄호를 사람이 손으로 세다 보면 반드시 하나쯤은 빠뜨리거나 초과하는 실수가 생깁니다. 게다가 조건 하나를 검사하는 순서를 반대로 배치하는 실수까지 겹치면, 수식은 오류 없이 작동하는 것처럼 보이지만 실제로는 전혀 엉뚱한 등급을 부여하는 훨씬 발견하기 어려운 논리 오류로 이어집니다.
이런 구조적 한계는 수식을 처음 작성한 사람이 아닌 다른 담당자가 나중에 이 파일을 인수인계 받았을 때 더욱 심각해집니다. 괄호가 여러 겹으로 쌓인 수식은 어느 부분이 어느 조건에 해당하는지 한눈에 파악하기 어렵고, 조건 기준을 하나만 수정하려 해도 전체 수식을 처음부터 끝까지 다시 읽어야 하는 부담이 생깁니다. IFS 함수는 바로 이 문제, 즉 괄호를 겹겹이 쌓는 대신 조건과 결과를 순서대로 나열하기만 하면 되는 훨씬 평평한 구조를 제공하여 이런 유지보수 부담을 근본적으로 줄여줍니다.
2. IFS 함수 문법과 조건 나열 작성법
IFS의 기본 문법은 다음과 같습니다.
수식: =IFS(조건1,결과1,조건2,결과2,조건3,결과3)
IFS는 조건과 결과값을 쉼표로 계속 나열하기만 하면 되고, IF처럼 괄호를 겹겹이 쌓을 필요가 전혀 없습니다. 다만 IFS 함수는 조건에 해당하지 않는 나머지 모든 경우를 처리하는 별도의 기타 인수가 존재하지 않기 때문에, 마지막 조건 자리에 무조건 참이 되는 TRUE를 넣어 나머지 모든 경우를 받아내는 것이 실무 표준 작성법입니다. 이 TRUE 조건을 빠뜨리면 앞의 모든 조건에 해당하지 않는 데이터는 결과값 없이 오류를 반환하게 됩니다.
3. AND와 OR로 다중 기준을 동시에 또는 하나라도 만족시키기
AND 함수는 나열한 모든 조건이 동시에 참이어야 결과도 참이 되는 함수입니다.
수식: =AND(조건1,조건2,조건3)
OR 함수는 반대로 나열한 조건 중 단 하나만 참이어도 결과가 참이 됩니다.
수식: =OR(조건1,조건2,조건3)
이 두 함수는 단독으로 쓰이기보다 IF나 IFS의 조건 자리에 통째로 들어가서 함께 작동하는 경우가 대부분입니다. AND나 OR 함수 전체가 마치 하나의 조건처럼 취급된다는 점이 핵심 원리입니다.
4. 따라하기: 실무 더미 데이터를 활용한 인사평가 등급 산출 실습
아래와 같은 인사평가 데이터가 A1부터 D5까지 있다고 가정하겠습니다.
| 사원명 | 근태점수 | 영업실적 | 평가등급 |
|---|---|---|---|
| 김민준 | 95 | 92 | |
| 이서연 | 82 | 78 | |
| 박도윤 | 68 | 71 | |
| 최지우 | 55 | 60 |
1단계, 기존 중첩 IF 방식으로 작성하기. 근태점수와 영업실적의 평균이 90 이상이면 S, 80 이상이면 A, 70 이상이면 B, 그 미만은 C 등급을 부여하는 수식을 중첩 IF로 작성하면 다음과 같습니다.
수식: =IF(AVERAGE(B2:C2)>=90,"S",IF(AVERAGE(B2:C2)>=80,"A",IF(AVERAGE(B2:C2)>=70,"B","C")))
이 수식은 괄호가 세 겹이나 중첩되어 있어 조건을 하나만 추가하려 해도 전체 구조를 다시 살펴봐야 하는 부담이 있습니다. 여기서 반드시 지켜야 할 점은 조건을 높은 점수부터 순서대로 검사해야 한다는 것입니다. 만약 순서를 반대로 배치하면 95점을 받은 사원도 낮은 조건에 먼저 걸려 엉뚱한 등급으로 처리되어 버립니다.
2단계, 동일한 로직을 IFS로 다시 작성하기. 위와 똑같은 결과를 IFS로 작성하면 다음과 같이 훨씬 평평한 구조가 됩니다.
수식: =IFS(AVERAGE(B2:C2)>=90,"S",AVERAGE(B2:C2)>=80,"A",AVERAGE(B2:C2)>=70,"B",TRUE,"C")
괄호가 딱 하나만 필요하고 조건과 결과가 순서대로 나란히 나열되어 있어, 나중에 기준 점수를 하나 수정하거나 등급 구간을 하나 더 추가하고 싶을 때도 해당 조건과 결과값 한 쌍만 찾아서 고치면 되므로 유지보수가 훨씬 수월합니다.
3단계, AND로 두 조건을 동시에 만족하는 최상위 등급 판별하기. 근태점수와 영업실적이 각각 개별적으로도 90점 이상이어야만 진짜 S등급으로 인정하고, 평균만 높고 한쪽 점수가 낮다면 재심사 대상으로 분류하고 싶다면 다음과 같이 작성합니다.
수식: =IF(AND(B2>=90,C2>=90),"S","재심사")
김민준의 경우 근태점수 95와 영업실적 92가 모두 90 이상이므로 S등급이 반환되지만, 만약 근태점수는 95인데 영업실적이 85였다면 평균은 90을 넘더라도 이 수식에서는 재심사로 분류됩니다.
4단계, OR로 경고 대상을 판별하기. 근태점수나 영업실적 둘 중 하나라도 60점 미만이면 경고 대상으로 표시하고 싶다면 다음과 같이 작성합니다.
수식: =IF(OR(B2<60,C2<60),"경고","정상")
최지우의 경우 근태점수가 55점으로 60점 미만이므로 영업실적이 60점이더라도 즉시 경고로 분류됩니다.
5단계, SWITCH로 등급 코드를 보너스 안내 문구로 단순 치환하기. 앞서 D열에 산출된 등급값을 그대로 활용해서 등급별 보너스 지급 안내 문구를 붙이고 싶다면, 여러 조건을 비교하는 대신 정확히 일치하는 값만 찾아 치환하는 SWITCH 함수가 더 간결합니다.
수식: =SWITCH(D2,"S","특별보너스","A","기본보너스","B","보너스없음","심사필요")
SWITCH의 첫 번째 인수는 비교할 값이고, 그 뒤로 일치값과 결과값의 쌍을 계속 나열하며, 어떤 쌍에도 해당하지 않을 경우 반환할 기본값을 맨 마지막에 하나만 넣어주면 됩니다. IFS가 범위나 조건식을 비교하는 데 특화되어 있다면, SWITCH는 정확히 일치하는 코드값을 텍스트로 바꿔치기하는 단순 매핑 작업에 특화되어 있어 등급 코드나 부서 코드를 안내 문구로 변환할 때 특히 편리합니다.
주의 사항: 다중 조건문 작성 시 가장 많이 터지는 실수 3가지
첫째, 조건 검사 순서가 뒤바뀌어 전원이 최고 등급이나 최저 등급으로 몰리는 오류입니다. 이상 조건을 사용할 때는 반드시 높은 기준부터 먼저 검사해야 하며, 이 순서를 지키지 않으면 IF나 IFS 모두 앞쪽 조건이 참으로 판명되는 즉시 뒤에 있는 나머지 조건은 검사하지 않고 결과를 반환해버립니다.
둘째, IFS 함수에서 마지막 TRUE 조건을 빠뜨려서 조건에 해당하지 않는 데이터가 오류로 표시되는 경우입니다. IFS는 모든 조건에 해당하지 않는 나머지 경우를 자동으로 처리해주지 않으므로, 반드시 마지막 자리에 TRUE와 기본값을 한 쌍으로 추가해야 안전합니다.
셋째, IFS와 SWITCH 함수를 구버전 엑셀에서 열었을 때 이름 오류가 발생하는 경우입니다. 두 함수 모두 Excel 2019 버전과 마이크로소프트 365부터 지원되므로, 그보다 오래된 버전을 사용하는 협력사나 타 부서와 파일을 공유해야 한다면 사전에 반드시 버전을 확인하고 필요하다면 전통적인 중첩 IF 방식으로 대체해야 합니다.
실무 팁
중첩 IF든 IFS든 수식을 한 번에 완성하려 하지 말고, 가장 안쪽 조건이나 첫 번째 조건부터 하나씩 입력해서 정상 작동을 확인한 뒤 다음 조건을 이어붙이는 방식으로 조립하면 오류 발생 확률이 크게 줄어듭니다. 또한 수식 입력줄 안에서 알트와 엔터 키를 눌러 조건마다 줄바꿈을 넣어두면, 나중에 수식을 검토하거나 다른 담당자에게 인수인계할 때 어느 조건이 어느 결과에 대응하는지 한눈에 파악할 수 있어 유지보수성이 크게 향상됩니다.
5. 도구별 비교: 중첩 IF vs IFS vs AND OR 결합 vs SWITCH
| 항목 | 중첩 IF | IFS | SWITCH |
|---|---|---|---|
| 구버전 호환성 | 모든 버전 가능 | 2019 이상만 가능 | 2019 이상만 가능 |
| 적합한 조건 유형 | 범위 및 복합 조건 | 범위 및 복합 조건 | 정확히 일치하는 코드값 |
| 가독성 | 조건이 많아지면 급격히 저하 | 조건이 많아도 비교적 명확 | 매우 명확함 |
| 기타 조건 처리 | 마지막 인수 자리에서 자동 처리 | TRUE를 직접 추가해야 함 | 마지막 인수 자리에서 자동 처리 |
범위나 이상 이하 같은 대소 비교가 필요한 등급 판별에는 IFS가, 코드값을 그대로 다른 텍스트로 바꿔치기하는 단순 매핑에는 SWITCH가 더 적합합니다. 구버전 호환성이 반드시 필요한 환경이라면 다소 번거롭더라도 전통적인 중첩 IF 방식을 유지해야 합니다.
6. 실무자가 가장 자주 묻는 질문 4가지
질문 하나, IF는 최대 몇 단계까지 중첩할 수 있고 IFS는 조건을 몇 개까지 나열할 수 있나요.
IF는 최대 64개까지 중첩할 수 있고 IFS도 최대 127개의 조건 쌍까지 지원합니다. 다만 기술적으로 가능하다는 의미일 뿐, 실무적으로는 대여섯 단계를 넘어가면 IFS를 쓰더라도 가독성이 떨어지므로 VLOOKUP 근사값 방식 등 다른 대안을 함께 고려하는 것이 좋습니다.
질문 둘, AND와 OR를 동시에 하나의 조건 안에 함께 써야 하는 경우는 어떻게 처리하나요.
AND와 OR를 서로의 인수 자리에 중첩해서 넣으면 됩니다. 예를 들어 근태점수가 90 이상이면서 동시에 영업실적이 90 이상이거나 특별승진 대상인 경우를 판별하고 싶다면, OR 함수 안에 AND 함수를 조건 중 하나로 포함시키는 방식으로 두 함수를 자유롭게 조합할 수 있습니다.
질문 셋, IFS 함수에서 조건식 대신 특정 텍스트가 정확히 일치하는지도 검사할 수 있나요.
가능합니다. IFS의 조건 자리에는 참 거짓으로 판별되는 어떤 논리식이든 넣을 수 있으므로, 등호를 사용한 텍스트 일치 조건도 그대로 사용할 수 있습니다. 다만 정확히 일치하는 코드값을 여러 개 나열해서 비교하는 것이 주된 목적이라면 IFS보다 SWITCH가 더 간결한 결과를 만들어줍니다.
질문 넷, SWITCH 함수에서 숫자 구간, 예를 들어 90점 이상 같은 조건도 사용할 수 있나요.
SWITCH는 정확히 일치하는 값만 비교하도록 설계되어 있어 이상 이하 같은 범위 비교에는 사용할 수 없습니다. 점수 구간처럼 범위를 판별해야 하는 경우에는 SWITCH 대신 IFS나 중첩 IF를 사용해야 합니다.
7. 논리 수식 배포 전 필수 검증 체크리스트
다중 조건문을 최종 배포하기 전 다음 사항을 반드시 점검해야 합니다. 첫째, 각 등급 구간의 경계값을 직접 테스트하여 의도한 등급으로 정확히 나뉘는지 확인합니다. 둘째, IFS 함수를 사용했다면 마지막에 TRUE 조건이 빠짐없이 포함되어 있는지 확인합니다. 셋째, AND와 OR 중 어떤 논리로 조건을 연결해야 하는지 업무 요건을 다시 한번 확인하여 반대로 적용되지 않았는지 점검합니다. 넷째, IFS나 SWITCH가 포함된 파일을 공유할 대상이 구버전 엑셀을 사용하지 않는지 사전에 확인합니다.
바쁜 직장인을 위한 최종 3줄 요약
1. 중첩 IF는 조건이 늘어날수록 괄호가 겹겹이 쌓이지만, IFS는 조건과 결과를 순서대로 나열하기만 하면 되어 훨씬 관리하기 쉽습니다.
2. AND는 모든 조건을 동시에, OR는 여러 조건 중 하나라도 만족하면 참이 되며, 두 함수는 IF나 IFS의 조건 자리에 그대로 들어갑니다.
3. 범위 비교에는 IFS를, 코드값을 텍스트로 단순 치환할 때는 SWITCH를 사용하면 각 상황에 가장 간결한 수식을 만들 수 있습니다.