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)))))으로, 순서가 잘못되었습니다.

문제가 발생 한 것을 확인할 수 있나요? 이전 예제와의 수익 비교 순서를 비교 합니다. 이 중 어떤 방법을 사용할 수 있을까요? 그 이유는 아래에서 ($5000 ~ $15000)로 이동 하는 것입니다. 그런데 그 이유는 큰 일이 될 수 있을까요? 수식에서 $5000를 통해 값에 대 한 첫 번째 계산을 통과할 수 없기 때문에 큰 문제가 됩니다. 수익에서 $12500을 얻은 경우 IF 문은 $5000 보다 크므로 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 이상)
OR function
VLOOKUP function
COUNTIF 함수는 단일 조건을
기반으로 값을 계산 합니다.COUNTIFS 함수는 여러 조건을
기반으로 값의 개수를 계산 합니다.SUMIF 함수는 단일 조건을
기준으로 값의 합계를 계산 합니다.SUMIFS 함수는 여러 조건
에 따라 값의 합계
계산 합니다.excel
의 수식손상
방지 방법 수식에서
Logical functions
오류 감지 excel함수 (알파벳순)
excel 함수 (범주별)

참고:  이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 정보가 도움이 되는지 알려주세요. 참조할 수 있는 영문 문서가 여기 있습니다.

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

이 정보가 유용한가요?

의견 주셔서 감사합니다!

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

×