IF 함수 괄호 열다 멘붕 왔다면? 괄호 지옥 탈출하는 다중 조건 정리법

[핵심 요약]

  • 대상 기능 및 수식명: IF, IFS, AND, OR
  • 주요 해결 과제: 3개 이상의 다중 등급 판정, 복합 논리 조건 AND OR 결합, 복잡하게 얽힌 다중 IF문 괄호 오류 해결
  • 적용 가능 버전: Excel 전 버전(IFS는 Excel 2019 및 M365), 구글 스프레드시트
  • 기대 효과: 인사평가 등급 부여 및 수당 계산 자동화, 조건문 유지보수 시간 80퍼센트 단축

실무에서 다중 IF문 작성이 악몽이 되는 이유와 논리 설계 원칙

인사평가 등급을 산출하거나 실적에 따라 수당 구간을 나누는 업무를 해본 실무자라면 누구나 한 번쯤 겹겹이 쌓인 괄호 앞에서 머리를 감싸 쥔 경험이 있을 것입니다. 조건이 두 개일 때는 IF 함수 하나로 간단히 해결되지만, 등급이 S 등급부터 D 등급까지 다섯 단계로 늘어나는 순간 IF 안에 IF가 들어가고 그 안에 또 IF가 들어가는 중첩 구조가 만들어지며, 이 과정에서 여는 괄호와 닫는 괄호의 개수를 맞추는 일 자체가 상당한 집중력을 요구하는 작업이 됩니다. 조건이 하나 늘어날 때마다 닫아야 할 괄호도 하나씩 늘어나는데, 사람이 손으로 이를 세다 보면 반드시 하나쯤은 빠뜨리거나 초과하게 되어 있고, 이것이 바로 실무자들이 흔히 말하는 괄호 지옥의 실체입니다.

이 문제를 최소화하기 위해 반드시 지켜야 할 절대 법칙이 바로 조건의 배치 순서입니다. 점수가 높을수록 좋은 등급인 상황, 즉 90점 이상은 S등급, 80점 이상은 A등급처럼 이상 조건을 사용하는 경우에는 반드시 가장 높은 조건부터 먼저 검사하는 내림차순 순서로 배치해야 합니다. 반대로 점수가 낮을수록 우선 처리해야 하는 조건, 예를 들어 60점 미만은 재교육 대상이라는 식의 미만 이하 조건을 사용하는 경우에는 가장 낮은 조건부터 먼저 검사하는 오름차순 순서로 배치해야 합니다. 이 순서를 지키지 않으면 뒤에서 설명할 전원 최고 등급 부여라는 치명적인 오류가 발생하므로, IF문을 작성하기 전에 반드시 어떤 방향으로 조건을 쌓아야 하는지부터 종이에 적어보고 시작하는 것이 안전합니다.

기본 문법 완벽 해부 단일 IF부터 AND OR 복합 결합까지

IF 함수는 세 가지 인수로 구성됩니다.

수식: =IF(조건, 참일때값, 거짓일때값)

첫 번째 인수인 조건은 참 또는 거짓으로 판별될 수 있는 논리식이어야 합니다. 두 번째 인수는 조건이 참일 때 반환할 값이고, 세 번째 인수는 조건이 거짓일 때 반환할 값입니다. 이 세 번째 인수 자리에 또 다른 IF 함수를 통째로 집어넣는 방식으로 중첩이 이루어지며, 이렇게 계속 이어붙이는 구조가 바로 다중 IF문의 본질입니다.

AND 함수는 여러 조건을 모두 동시에 만족해야만 참을 반환하는 함수입니다.

수식: =AND(조건1, 조건2, 조건3)

예를 들어 근태점수가 90점 이상이면서 동시에 영업실적도 90점 이상이어야 S등급을 부여하고 싶다면 AND 함수로 두 조건을 감싸서 IF의 첫 번째 인수 자리에 넣어주면 됩니다.

OR 함수는 반대로 여러 조건 중 단 하나만 만족해도 참을 반환합니다.

수식: =OR(조건1, 조건2, 조건3)

예를 들어 근태점수나 영업실적 둘 중 하나라도 기준치에 미달하면 경고 대상으로 분류하고 싶은 경우처럼, 여러 조건 중 하나라도 해당되면 되는 상황에서 사용합니다.

IF와 AND OR를 중첩할 때 가장 중요한 괄호 위치 규칙은, AND나 OR 함수 전체가 마치 하나의 조건처럼 IF의 첫 번째 인수 자리에 통째로 들어간다는 점을 이해하는 것입니다.

수식: =IF(AND(B2>=90, C2>=90), “S등급”, “A등급”)

여기서 AND 함수의 괄호는 AND가 감싸고 있는 두 조건만 닫아주면 되고, 그 뒤에 IF의 두 번째와 세 번째 인수가 쉼표로 이어지며, IF 함수 전체를 닫는 마지막 괄호가 맨 끝에 온다는 순서를 명확히 기억해야 합니다.

따라하기: 실무 더미 데이터를 활용한 인사고과 등급 산출 실습

아래와 같은 인사평가 데이터가 있다고 가정하겠습니다.

사원명 근태점수 영업실적 최종평가
김민준 95 92
이서연 85 78
박도윤 72 65
최지우 55 48

이제 근태점수와 영업실적을 각각 확인하여 두 점수의 평균이 90점 이상이면 S등급, 80점 이상이면 A등급, 70점 이상이면 B등급, 그 미만은 C등급을 부여하는 최종평가 열을 완성하는 실습을 진행하겠습니다. 여기서는 이해를 돕기 위해 두 점수의 평균값을 기준으로 삼겠습니다.

첫 번째, D2 셀을 클릭하고 다음 수식을 입력합니다.

수식: =IF(AVERAGE(B2:C2)>=90, “S등급”, IF(AVERAGE(B2:C2)>=80, “A등급”, IF(AVERAGE(B2:C2)>=70, “B등급”, “C등급”)))

이 수식을 괄호 단위로 분해하면, 가장 바깥쪽 IF는 평균이 90점 이상인지를 검사하고 만약 아니라면 두 번째 IF로 넘어가서 80점 이상인지를 검사하며, 이마저 아니라면 세 번째 IF로 넘어가서 70점 이상인지를 검사하고, 마지막까지 모두 해당하지 않으면 C등급을 반환하는 구조입니다. 여기서 반드시 주목해야 할 부분은 조건이 90점 이상부터 시작해서 점점 낮은 기준으로 내려간다는 점이며, 이는 앞서 설명한 절대 법칙, 즉 이상 조건을 사용할 때는 높은 조건부터 먼저 검사해야 한다는 원칙을 정확히 따른 것입니다.

두 번째, 엔터를 눌러 결과를 확인하고 D2 셀의 채우기 핸들을 아래로 드래그하여 나머지 행에도 동일한 수식을 적용합니다. 이때 AVERAGE 함수 안의 범위는 각 행마다 자동으로 조정되어야 하므로 상대참조 형태 그대로 두어야 합니다.

[주의 사항: IF 함수 작성 시 가장 많이 터지는 3대 실수와 해결책]

첫 번째, 조건 검사 순서가 뒤바뀌어서 전원이 최고 등급이나 최저 등급으로 몰리는 치명적인 오류입니다. 예를 들어 앞선 실습에서 만약 실수로 낮은 조건인 70점 이상을 가장 먼저 검사하도록 순서를 뒤바꾸면 어떻게 될까요. 95점을 받은 사원도 70점 이상이라는 조건에 걸려 곧바로 B등급으로 처리되어 버리고, 그 뒤에 있는 90점 이상 조건까지는 아예 검사조차 되지 않습니다. IF 함수는 앞쪽 조건이 참으로 판명되는 순간 뒤에 있는 나머지 조건은 확인하지 않고 즉시 결과를 반환해버리기 때문입니다. 이 오류는 결과가 그럴듯한 등급 형태로 나오기 때문에 검토 과정에서 놓치기 쉬우므로, 반드시 최고 점수를 받은 사람과 최저 점수를 받은 사람의 결과를 직접 눈으로 확인하는 검증 과정이 필요합니다.

두 번째, 참이나 거짓일 때 반환하고자 하는 값이 텍스트임에도 큰따옴표로 감싸지 않아서 NAME 오류가 발생하는 경우입니다. S등급이라는 텍스트를 반환하고 싶다면 반드시 큰따옴표로 감싸서 입력해야 하는데, 이를 빠뜨리고 그냥 S등급이라고만 입력하면 엑셀은 이를 정의되지 않은 이름이나 함수로 착각하여 이름 오류를 반환합니다. 텍스트를 반환할 때는 예외 없이 큰따옴표로 감싸야 한다는 원칙을 항상 기억해야 합니다.

세 번째, 여는 괄호와 닫는 괄호의 개수가 일치하지 않아서 수식에 오류가 있다는 경고 창이 뜨는 경우입니다. 중첩 단계가 서너 단계를 넘어가면 사람이 눈으로 괄호 개수를 세는 것 자체가 매우 힘들어집니다. 이를 해결하는 가장 확실한 방법은 수식을 한 번에 다 입력하려 하지 말고, 가장 안쪽에 있는 IF문부터 하나씩 완성하여 정상 작동을 확인한 뒤, 그 완성된 수식 전체를 복사하여 바깥쪽 IF의 거짓일때값 자리에 붙여넣는 방식으로 바깥쪽으로 한 겹씩 쌓아나가는 것입니다. 이렇게 안쪽에서 바깥쪽으로 조립하는 방식을 사용하면 한 번에 여러 괄호를 세야 하는 부담이 크게 줄어듭니다.

최신 엑셀 실무자의 무기 IFS 함수와 SWITCH 함수로 코드 다이어트

IFS 함수는 중첩 IF문의 복잡한 괄호 구조를 획기적으로 단순화시켜주는 최신 함수입니다.

수식: =IFS(조건1, 결과1, 조건2, 결과2, 조건3, 결과3)

IFS는 조건과 결과값을 쉼표로 계속 나열하기만 하면 되고, IF처럼 괄호를 겹겹이 쌓을 필요가 전혀 없습니다. 앞서 실습했던 등급 산출 수식을 IFS로 다시 작성하면 다음과 같습니다.

수식: =IFS(AVERAGE(B2:C2)>=90, “S등급”, AVERAGE(B2:C2)>=80, “A등급”, AVERAGE(B2:C2)>=70, “B등급”, TRUE, “C등급”)

여기서 주목할 부분은 마지막에 등장하는 TRUE라는 조건입니다. IFS 함수는 앞의 모든 조건에 해당하지 않는 나머지 경우를 처리하는 별도의 기타 인수가 존재하지 않기 때문에, 이를 대신하기 위해 마지막 조건 자리에 무조건 참이 되는 TRUE를 넣어 나머지 모든 경우를 여기서 받아내도록 처리하는 것이 실무에서 널리 쓰이는 표준적인 방법입니다. 만약 이 TRUE 조건을 빠뜨리면 앞의 모든 조건에 해당하지 않는 데이터는 결과값 없이 NA라는 오류값을 반환하게 됩니다.

[주의 사항]

IFS 함수는 Excel 2019 버전과 마이크로소프트 365 구독 버전부터 사용할 수 있으며, 그 이전 버전인 Excel 2016이나 2013에서는 이 함수 자체가 존재하지 않아 파일을 열었을 때 이름 오류가 발생합니다. 따라서 여러 부서와 파일을 공유해야 하는 대기업 환경에서는 상대방의 엑셀 버전을 미리 확인하지 않고 IFS를 사용하면 자칫 협업 과정에서 큰 혼란을 야기할 수 있으므로, 구버전 사용자가 섞여 있는 환경이라면 다소 번거롭더라도 전통적인 중첩 IF 방식을 유지하는 것이 안전합니다.

도구별 생산성 비교 중첩 IF vs IFS vs VLOOKUP 근사값 True

항목 중첩 IF IFS VLOOKUP 근사값 방식
구버전 호환성 모든 버전에서 사용 가능 2019 이상 및 365만 가능 모든 버전에서 사용 가능
수식 가독성 조건이 많아질수록 급격히 저하 조건이 많아도 비교적 명확함 기준표만 봐도 한눈에 파악 가능
등급 기준 수정 용이성 수식 자체를 다시 열어 수정해야 함 수식 자체를 다시 열어 수정해야 함 기준표의 숫자만 바꾸면 즉시 반영
조건 구간이 5단계 이상일 때 매우 복잡해짐 상대적으로 관리 가능 가장 간결하고 안전함

이 비교표에서 특히 주목할 부분은 조건 구간이 다섯 단계를 넘어가는 경우입니다. 이런 상황에서는 사실 IF나 IFS보다 VLOOKUP의 근사값 검색 방식이 훨씬 강력한 대안이 될 수 있습니다. 별도의 기준표를 만들어 점수 구간과 등급을 미리 정리해두고, 이 기준표를 오름차순으로 정렬한 뒤 VLOOKUP의 네 번째 인수를 TRUE로 설정하면 점수보다 작거나 같은 값 중 가장 큰 값을 찾아 해당 등급을 자동으로 반환합니다. 이 방식의 가장 큰 장점은 등급 기준이 변경되었을 때 수식을 전혀 건드릴 필요 없이 기준표의 숫자만 수정하면 모든 계산에 즉시 반영된다는 점이며, 이는 인사 정책이 자주 바뀌는 조직에서 특히 유용한 유지보수 장점입니다.

실무자가 가장 자주 묻는 질문 4가지

질문 하나, IF 함수는 최대 몇 개까지 중첩할 수 있나요.

Excel 2007 이후 버전부터는 IF 함수를 최대 64개까지 중첩할 수 있습니다. 다만 이는 기술적으로 가능하다는 의미일 뿐이며, 실무적으로는 중첩이 대여섯 단계만 넘어가도 수식을 읽고 유지보수하기가 매우 어려워지므로, 그 이상의 다단계 조건이 필요하다면 IFS 함수나 VLOOKUP 근사값 방식으로 전환하는 것을 적극 권장합니다.

질문 둘, 참조하는 셀이 아직 비어 있을 때는 계산 결과도 빈칸으로 유지하고 싶습니다. 어떻게 해야 하나요.

IF 함수의 조건 자리에 빈칸 여부를 먼저 검사하는 조건을 추가하면 됩니다. 수식: =IF(B2=””, “”, 원래계산식) 형태로 작성하면, B2 셀이 비어 있을 때는 결과도 빈칸으로 표시되고 값이 입력된 이후부터 정상적으로 계산이 시작됩니다. 이렇게 처리하면 아직 데이터가 입력되지 않은 행에 불필요한 0이나 오류값이 미리 표시되는 것을 방지할 수 있습니다.

질문 셋, 숫자 조건이 아니라 셀 안에 특정 텍스트가 포함되어 있는지를 기준으로 조건을 걸고 싶습니다.

ISNUMBER 함수와 SEARCH 함수를 조합하면 특정 텍스트의 포함 여부를 판별할 수 있습니다. 수식: =IF(ISNUMBER(SEARCH(“찾을텍스트”, A2)), 참일때값, 거짓일때값) 형태로 작성합니다. SEARCH 함수는 찾는 텍스트가 존재하면 위치 번호를, 존재하지 않으면 오류값을 반환하는데, 이 위치 번호가 실제 숫자인지 여부를 ISNUMBER로 다시 한번 판별하여 IF의 조건으로 활용하는 원리입니다.

질문 넷, 대소문자까지 정확하게 구분해서 조건을 걸어야 하는 경우도 있나요.

일반적으로 엑셀의 논리 비교 연산자는 대소문자를 구분하지 않기 때문에 대문자 A와 소문자 a를 똑같은 값으로 취급합니다. 만약 대소문자를 엄격하게 구분해서 완전히 일치하는 경우에만 참으로 판별하고 싶다면 EXACT 함수를 사용해야 합니다. 수식: =IF(EXACT(A2, “비교할텍스트”), 참일때값, 거짓일때값) 형태로 작성하면 대소문자가 하나라도 다르면 거짓으로 처리되는 엄격한 비교가 가능해집니다.

논리 수식 작성 효율을 높이는 실무 단축키 및 체크리스트

복잡한 중첩 IF 수식을 작성할 때 모든 내용을 한 줄로 이어 쓰면 괄호 위치를 눈으로 추적하기가 매우 어렵습니다. 이때 수식 입력줄 안에서 알트 키와 엔터 키를 함께 눌러 줄바꿈을 삽입하면, 각 조건과 결과값을 시각적으로 구분된 줄로 나누어 입력할 수 있어 가독성이 크게 향상됩니다. 예를 들어 조건 하나가 끝날 때마다 줄바꿈을 삽입하는 습관을 들이면 나중에 수식을 검토하거나 수정할 때 어느 괄호가 어느 조건에 속하는지 훨씬 명확하게 파악할 수 있습니다.

[실무 팁]

다중 IF 수식을 최종 배포하기 전 다음의 검증 루틴을 반드시 거치는 것을 권장합니다. 첫째, 각 등급 구간의 정확한 경계값, 예를 들어 정확히 90점을 받은 경우와 89점을 받은 경우를 각각 테스트하여 의도한 등급으로 정확히 나뉘는지 확인합니다. 둘째, 데이터 전체를 대상으로 각 등급별로 몇 명씩 분류되었는지 COUNTIF로 집계하여 특정 등급에 인원이 비정상적으로 몰려 있지는 않은지 점검합니다. 셋째, 참이나 거짓 반환값에 들어간 텍스트에 큰따옴표가 빠짐없이 씌워져 있는지 수식 전체를 다시 한번 읽어봅니다. 넷째, IFS 함수를 사용했다면 마지막 TRUE 조건이 반드시 포함되어 있는지 확인합니다.

[바쁜 직장인을 위한 최종 3줄 요약]

첫째, 다중 IF문은 이상 조건일 때 높은 점수부터, 이하 조건일 때 낮은 점수부터 검사하는 순서 원칙만 지키면 전원 최고 등급 같은 대형 오류를 예방할 수 있습니다.

둘째, 괄호 개수가 헷갈릴 때는 가장 안쪽 조건부터 완성해서 바깥으로 조립해나가는 방식이 가장 안전하며, 텍스트 반환값에는 반드시 큰따옴표를 씌워야 합니다.

셋째, 최신 버전이라면 IFS로 괄호 부담을 줄이고, 등급 구간이 다섯 단계 이상으로 많아진다면 기준표 수정만으로 유지보수가 되는 VLOOKUP 근사값 방식을 고려하는 것이 장기적으로 더 효율적입니다.