IF 함수 - 중첩된 수식 및 오류 방지

IF 함수 - 중첩된 수식 및 오류 방지

IF 함수를 사용하면 조건을 테스트하고 True 또는 False인지 결과를 반환하여 예상값과 특정 값을 논리적으로 비교할 수 있습니다.

  • =IF(어떤 항목이 True이면 어떤 작업을 수행하고 그렇지 않으면 다른 작업을 수행함)

따라서 IF 문에서는 두 개의 결과가 나타날 수 있습니다. 첫 번째 결과는 비교가 True인 경우이고 두 번째 결과는 비교가 False인 경우입니다.

IF 문은 매우 강력하며 많은 스프레드시트 모델의 기반이 되지만 여러 스프레드시트 문제의 근본 원인이기도 합니다. IF 문은 남성/여성, 예/아니요/미정과 같이 최소한의 조건에 적용되어야 하지만 4개 이상의 IF 함수를 중첩*해야 하는 더 복잡한 시나리오를 평가해야 하는 경우도 있습니다.

* "중첩"은 하나의 수식에서 여러 함수를 결합하는 방식을 가리킵니다.

논리 함수 중 하나인 IF 함수를 사용하여 조건이 True이면 하나의 값을 반환하고, 조건이 False이면 다른 값을 반환합니다.

구문

IF(logical_test, value_if_true, [value_if_false])

예를 들면 다음과 같습니다.

  • =IF(A2>B2,"예산 초과","승인")

  • =IF(A2=B2,B4-A4,"")

인수 이름

설명

logical_test   

(필수)

검사할 조건입니다.

value_if_true   

(필수 인수)

logical_test 의 결과가 TRUE일 경우 반환할 값입니다.

value_if_false   

(선택 인수)

logical_test 의 결과가 FALSE일 경우 반환할 값입니다.

주의

Excel에는 서로 다른 IF 함수를 64개 중첩할 수 있지만 그렇게 하는 것은 전혀 바람직하지 않습니다. 다음과 같은 이유 때문입니다.

  • IF 문이 여러 개이면 문을 올바르게 작성하고 논리에 따라 각 조건이 끝까지 올바르게 계산되도록 고심해야 합니다. 수식을 100% 정확하게 중첩하지 않으면 75%는 제대로 실행되지만 25%는 예상치 못한 결과가 반환될 수 있습니다. 안타깝게도 이 25%를 파악하는 것은 쉽지 않습니다.

  • IF 문이 여러 개이면 유지 관리가 매우 어려워질 수 있습니다. 자신이나 다른 사람이 작성하던 문을 나중에 다시 파악하려는 경우 특히 그렇습니다.

IF 문이 끝없이 이어지는 것 같으면 마우스를 내려놓고 전략을 다시 생각해야 합니다.

여러 개의 IF를 사용하여 중첩된 복합 IF 문을 올바르게 만드는 방법 및 Excel의 다른 도구를 사용해야 하는 경우를 살펴보겠습니다.

예제

다음은 학생의 시험 점수를 해당하는 학점으로 변환하는 비교적 표준적인 중첩된 IF 문의 예제입니다.

중첩된 복합 IF 문 - E2의 수식은 =IF(B2>97,"A+",IF(B2>93,"A",IF(B2>89,"A-",IF(B2>87,"B+",IF(B2>83,"B",IF(B2>79,"B-",IF(B2>77,"C+",IF(B2>73,"C",IF(B2>69,"C-",IF(B2>57,"D+",IF(B2>53,"D",IF(B2>49,"D-","F"))))))))))))입니다.
  • =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))

    이 중첩된 복합 IF 문은 다음과 같은 간단한 논리를 따릅니다.

  1. 시험 점수(D2 셀)가 89보다 크면 학생이 A 학점을 받습니다.

  2. 시험 점수가 79보다 크면 학생이 B 학점을 받습니다.

  3. 시험 점수가 69보다 크면 학생이 C 학점을 받습니다.

  4. 시험 점수가 59보다 크면 학생이 D 학점을 받습니다.

  5. 그 이외의 경우에는 학생이 F 학점을 받습니다.

이 특정 예제는 시험 점수와 학점 간의 상관 관계가 변경될 가능성이 없어서 비교적 안전하므로 많은 유지 관리가 필요하지 않습니다. 하지만 A+, A, A- 등으로 등급을 세분화해야 하는 경우는 어떻게 될까요? 이제 4개의 조건 IF 문이 12개의 조건을 포함하도록 다시 작성해야 합니다. 바뀐 수식은 다음과 같습니다.

  • =IF(B2>97,"A+",IF(B2>93,"A",IF(B2>89,"A-",IF(B2>87,"B+",IF(B2>83,"B",IF(B2>79,"B-", IF(B2>77,"C+",IF(B2>73,"C",IF(B2>69,"C-",IF(B2>57,"D+",IF(B2>53,"D",IF(B2>49,"D-","F"))))))))))))

여전히 기능이 정확하고 예상대로 작동하지만 작성하는 데 오랜 시간이 걸리고, 예상대로 작동하는지 확인하는 데는 더 오랜 시간이 걸립니다. 또 다른 명백한 문제는 점수와 해당 학점을 직접 입력해야 한다는 것입니다. 실수로 잘못 입력할 가능성이 얼마나 될까요? 더 복잡한 조건으로 이 작업을 64번 수행해야 한다고 생각해 보세요. 물론 불가능하지는 않지만, 이러한 종류의 수고와 발견하기 어려운 오류가 생길 수 있는 상황을 감수하고 싶으세요?

팁: Excel의 모든 함수에는 여는 괄호와 닫는 괄호 ()가 필요합니다. Excel에서는 편집 시 수식의 각 요소가 색으로 구분되므로 요소의 올바른 위치를 쉽게 파악할 수 있습니다. 예를 들어 위 수식을 편집하는 경우 각 끝 괄호 ")"를 커서로 가리키면 해당 여는 괄호가 동일한 색으로 바뀝니다. 이 기능은 중첩된 복합 수식에 일치하는 괄호가 충분한지 확인하려는 경우에 특히 유용할 수 있습니다.

추가 예제

다음은 수익 성과 수준에 따라 판매 수수료를 계산하는 매우 일반적인 예제입니다.

D9 셀의 수식은 IF(C9>15000,20%,IF(C9>12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))입니다.
  • =IF(C9>15000,20%,IF(C9>12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))

이 수식은 IF(C9이 15,000보다 크면 20%를 반환하고, IF(C9이 12,500보다 크면 17.5%를 반환하고... 등을 의미합니다.

이전 성적 예제와 매우 비슷합니다. 이 수식은 큰 IF 문을 유지하는 것이 얼마나 어려운지의 좋은 예입니다. 조직에서 새 보상 수준을 추가하기로 결정하고 기존 달러 또는 백분율 값을 변경하기로 결정한 경우 어떻게 해야 할까요? 많은 작업을 할 수 있습니다.

팁: 긴 수식을 읽기 쉽도록 수식 입력줄에 줄 바꿈을 삽입할 수 있습니다. 새 줄로 줄 바꿈하려는 텍스트 앞에서 Alt+Enter를 누르면 됩니다.

다음은 논리 순서가 맞지 않는 수수료 시나리오의 예제입니다.

D9의 수식은 =IF(C9>5000,10%,IF(C9>7500,12.5%,IF(C9>10000,15%,IF(C9>12500,17.5%,IF(C9>15000,20%,0)))))으로, 순서가 잘못되었습니다.

무엇이 잘못된지 알 수 있나요? 수익 비교의 순서를 이전 예제와 비교합니다. 이 방법은 어떤 방식으로 진행하나요? 바로 아래에서 ($5,000에서 $15,000)로 진행됩니다. 하지만 왜 그렇게 큰일까요? 수식이 $5,000를 넘는 값에 대한 첫 번째 평가를 전달할 수 없습니다. 수익이 $12,500인 경우 IF 문은 $5,000보다 크기 때문에 10%를 반환하고 거기에서 중지됩니다. 이러한 유형의 오류는 부정적인 영향을 미칠 때까지 많은 상황에서 이러한 유형의 오류를 인식하지 못하기 때문에 매우 문제가 될 수 있습니다. 따라서 복잡한 중첩 IF 문이 있는 몇 가지 심각한 문제가 있는 것을 알고 있는 경우 어떻게 할 수 있나요? 대부분의 경우 IF 함수를 사용하여 복잡한 수식을 구축하는 대신 VLOOKUP 함수를 사용할 수 있습니다. VLOOKUP을사용하여 먼저 참조 테이블을 만들어야 합니다.

D2 셀의 수식은 =VLOOKUP(C2,C5:D17,2,TRUE)입니다.
  • =VLOOKUP(C2,C5:D17,2,TRUE)

이 수식은 C5:C17 범위에서 C2의 값을 찾는다는 의미입니다. 값이 발견되면 D 열의 동일한 행에서 해당 값을 반환합니다.

C9 셀의 수식은 =VLOOKUP(B9,B2:C6,2,TRUE)입니다.
  • =VLOOKUP(B9,B2:C6,2,TRUE)

마찬가지로, 이 수식은 B2:B22 범위에서 B9 셀의 값을 찾습니다. 값이 발견되면 C 열의 동일한 행에서 해당 값을 반환합니다.

참고: 두 VLOOKUP은 모두 수식의 끝에 TRUE 인수를 사용하므로 적절한 일치 항목을 찾아야 합니다. 즉, 조회 테이블에서 정확한 값과 그 사이에 있는 모든 값을 일치 항목으로 찾습니다. 이 경우 조회 테이블을 가장 작은 값부터 가장 큰 값까지 오름차순으로 정렬해야 합니다.

VLOOKUP은 여기에서 훨씬 더 자세히 다루지만, 12개 수준, 복잡한 중첩 IF 문보다 훨씬 간단합니다. 이렇게 확실하지는 않지만 다른 이점도 있습니다.

  • VLOOKUP 참조 테이블은 공개되어 있고 쉽게 볼 수 있습니다.

  • 테이블 값을 쉽게 업데이트할 수 있으며, 조건이 변경되는 경우 수식을 수정할 필요가 없습니다.

  • 사용자가 참조 테이블을 보거나 조작할 수 없게 하려는 경우 다른 워크시트에 배치하면 됩니다.

알고 있나요?

이제 여러 중첩된 IF 문을 단일 함수로 바꿀 수 있는 IFS 함수가 있습니다. 따라서 4개의 중첩된 IF 함수가 있는 초기 성적 예제인

  • =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))

대신 단일 IFS 함수를 사용하여 다음과 같이 훨씬 더 단순하게 만들 수 있습니다.

  • =IFS(D2>89,"A",D2>79,"B",D2>69,"C",D2>59,"D",TRUE,"F")

IFS 함수는 이러한 모든 IF 문과 괄호에 대해 염려하지 않아도 되기 때문에 유용합니다.

참고: 이 기능은 Microsoft 365 구독을 보유하고 있는 경우에만 사용할 수 있습니다. Microsoft 365최신 Office 버전을 보유하고 있는지 확인합니다.

추가 지원

Excel 기술 커뮤니티의 전문가에게 질문하고, Answers 커뮤니티에서 지원을 받고, Excel 사용자 의견에서 새로운 기능이나 개선 사항을 제안해 보세요.

관련 항목

비디오: 고급 IF 함수
IFS 함수(Microsoft 365, Excel 2016 이상)
COUNTIF 함수는 단일 조건에 따라 값을 계산합니다.
COUNTIFS 함수는 여러 조건에 따라 값을 계산합니다.
SUMIF 함수는 단일 조건에 따라 값을 합산합니다.
SUMIFS 함수는 여러 조건에 따라 값을 합산합니다.
AND 함수
OR 함수
VLOOKUP 함수
Excel의 수식 개요
수식이 손상된 것을 방지하는 방법
수식에서 오류 감지
논리 함수
Excel 함수(사전순)
Excel 함수(범주별)

추가 도움이 필요하신가요?

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×