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와 같은 것 사이에 점수를 분할 해야 하는 경우를 생각해 볼 수 있습니다. 이제 네 개의 조건 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 범위의 C2에 있는 값을 찾습니다. C17. 값이 있으면 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 함수가 있습니다. 따라서 중첩 된 IF 함수가 4 개 있는 초기 점수 예제 대신 다음을 수행 합니다.

  • =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 문과 괄호에 대해 염려하지 않아도 되기 때문에 유용합니다.

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

Office 365 또는 최신 버전의 Excel 사용해 보기

추가 지원

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

관련 항목

비디오: 고급 IF 함수
IFS 함수 (Office 365, Excel 2016 이상)
COUNTIF 함수는 단일 조건을
기반으로 값의 개수를 계산 합니다.COUNTIFS 함수는 여러 값을 기반으로 값을 계산 합니다. criteria

SUMIF 함수는 단일 조건을 기반으로 값의 합계를계산합니다. SUMIFS 함수는 여러 조건
및 함수
또는 함수
VLOOKUP 함수

Excel의 수식
손상 방지 방법
수식에서 오류 검색논리 함수
excel 함수 (사전순)
excel 함수 (범주별)

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

이 정보가 유용한가요?

의견 주셔서 감사합니다!

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

×