엑셀에서 수식을 작성할 때 가장 많이 사용하는 함수 중 하나가 바로 IF 함수입니다. IF 함수는 논리 조건을 검사하여 그 결과가 참(TRUE)인지 거짓(FALSE)인지에 따라 서로 다른 두 가지 결과를 반환하는 함수입니다.
아래의 휴대폰 판매 데이터를 예시로 들어 하나씩 살펴보겠습니다.
단일 조건을 사용하는 IF 함수
판매 지역(D열)에 따라 각 판매 건의 수수료(Commission Fee)를 계산해야 하는 상황을 가정해 보겠습니다. 판매가 미국(USA)에서 이루어진 경우 수수료는 10%, 그 외 지역에서 이루어진 경우에는 5%가 적용됩니다.
F2 셀에 입력해야 할 첫 번째 수식은 다음과 같습니다.
=IF(D2="USA", E2*10%, E2*5%)
수식 구성 요소
- =IF( — '=' 기호는 셀에서 수식이 시작됨을 의미하며, IF는 사용하려는 엑셀 함수의 이름입니다.
- D2="USA" — 검사할 논리 조건입니다. 즉, D2 셀의 값이 'USA'인지 확인합니다.
- E2*10% — 논리 조건이 참(TRUE)일 때 반환되는 결과입니다(D2의 값이 'USA'인 경우).
- E2*5% — 논리 조건이 거짓(FALSE)일 때 반환되는 결과입니다(D2의 값이 'USA'가 아닌 경우).
- ) — 수식의 끝을 나타내는 닫는 괄호입니다.
이제 F2 셀의 수식을 F열의 나머지 행들로 복사하면 됩니다. 그러면 각 행마다 IF 논리 조건이 참인지 거짓인지에 따라 수수료가 자동으로 10% 또는 5%로 계산됩니다.
여러 조건을 사용하는 IF 함수 (중첩 IF)
그렇다면 하나의 논리 조건이 아니라 여러 조건을 검사하고, 조건마다 다른 결과를 반환해야 하는 경우에는 어떻게 해야 할까요?
엑셀에는 이를 위한 해결책이 있습니다. 바로 여러 개의 IF 함수를 하나의 셀 안에 결합하는 것이며, 이를 일반적으로 중첩 IF(Nested IF)라고 부릅니다.
판매 지역별로 수수료율이 다음과 같이 다른 시나리오를 생각해 보겠습니다.
- 미국(USA): 10%
- 호주(Australia): 5%
- 싱가포르(Singapore): 2%
F2 셀(이후 F열의 나머지 행으로 복사)에 다음과 같이 수식을 입력합니다.
=IF(D2="USA",E2*10%,IF(D2="Australia",E2*5%,E2*2%))
수식 구성 요소
- =IF( — IF 문으로 시작하는 수식의 시작점입니다.
- D2="USA" — 첫 번째로 수행하는 논리 조건입니다(D2 셀의 값이 'USA'인지 검사).
- E2*10% — 첫 번째 논리 조건이 참(TRUE)일 때 반환되는 결과입니다.
- IF(D2="Australia",E2*5%,E2*2%) — 첫 번째 논리 조건이 거짓(FALSE)일 때 평가되는 두 번째 IF 문입니다. 앞서 설명한 '단일 조건 IF 함수'와 동일한 구조로, D2의 값이 'Australia'이면 E2*5%를 반환하고, 그렇지 않으면 E2*2%를 반환합니다.
- ) — 첫 번째 IF 함수의 수식 끝을 나타내는 닫는 괄호입니다.
엑셀은 수식을 왼쪽에서 오른쪽으로 평가하기 때문에, 중간에 논리 조건이 충족되면(예: D2="USA") 뒤따르는 논리 조건(예: D2="Australia")은 무시하고 즉시 결과를 반환하며 수식 실행을 종료합니다.
따라서 첫 번째 논리 조건이 거짓이라면(즉, 지역이 미국이 아니라면) 두 번째 논리 조건을 계속 평가합니다. 두 번째 조건마저 거짓이라면(즉, 호주가 아니라면) 더 이상 검사할 필요가 없습니다. D2 셀에 남아 있을 수 있는 유일한 값은 'Singapore'이므로 E2*2%가 최종 결과로 반환됩니다.
명확성을 위해 세 번째 논리 조건까지 명시적으로 추가할 수도 있습니다. 이 경우 전체 확장 수식은 다음과 같습니다.
=IF(D2="USA",E2*10%,IF(D2="Australia",E2*5%,IF(D2="Singapore",E2*2%)))
앞서 언급했듯이, 위의 확장된 수식은 처음의 축약형 수식과 동일한 결과를 반환합니다.
=IF(D2="USA",E2*10%,IF(D2="Australia",E2*5%,E2*2%))
알아두면 유용한 팁
- IF( 함수 하나당 여는 괄호와 닫는 괄호가 하나씩 반드시 필요합니다. 위 예시처럼 IF 함수가 세 개 사용되었다면 수식 끝에 닫는 괄호 세 개 ')))'가 필요하며, 각 닫는 괄호는 대응하는 여는 IF( 괄호의 끝을 의미합니다.
- 논리 조건이 거짓(FALSE)일 때의 두 번째 결과를 지정하지 않으면, 엑셀은 기본값으로 텍스트 "FALSE"를 반환합니다. 따라서 =IF(D2="USA",E2*10%)라는 수식은 D2가 "USA"가 아닐 경우 텍스트 "FALSE"를 출력하게 됩니다.
- 서로 다른 논리 조건과 각기 다른 결과가 여러 개 필요하다면, 위의 예시처럼 IF 함수를 여러 번 연달아 결합하거나 중첩하여 사용할 수 있습니다.