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에서는 최대 64개의 서로 다른 IF 함수를 중첩할 수 있지만 그렇게 하는 것은 권장되지 않습니다. 다음과 같은 이유 때문입니다.
- IF 문이 여러 개이면 문을 올바르게 작성하고 논리에 따라 각 조건이 끝까지 올바르게 계산되도록 고심해야 합니다. 수식을 100% 정확하게 중첩하지 않으면 75%의 확률로 작동할 수 있지만 25%의 확률로 예기치 않은 결과를 반환합니다. 안타깝게도 이 25%를 파악하는 것은 쉽지 않습니다.
- IF 문이 여러 개이면 유지 관리가 매우 어려워질 수 있습니다. 자신이나 다른 사람이 작성하던 문을 나중에 다시 파악하려는 경우 특히 그렇습니다.
끝이 보이지 않고 계속 커지는 것처럼 보이는 IF 문을 발견했다면 마우스를 내려놓고 전략을 재고할 때입니다.
여러 IF를 사용하여 복잡한 중첩된 IF 문을 올바르게 만드는 방법과 Excel 무기고의 다른 도구를 사용해야 할 때를 인식하는 경우를 살펴보겠습니다.
예제
다음은 학생의 시험 점수를 해당하는 학점으로 변환하는 비교적 표준적인 중첩된 IF 문의 예제입니다.
- =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))
이 중첩된 복합 IF 문은 다음과 같은 간단한 논리를 따릅니다.
- 시험 점수(D2 셀)가 89보다 크면 학생이 A 학점을 받습니다.
- 시험 점수가 79보다 크면 학생이 B 학점을 받습니다.
- 시험 점수가 69보다 크면 학생이 C 학점을 받습니다.
- 시험 점수가 59보다 크면 학생이 D 학점을 받습니다.
- 그 이외의 경우에는 학생이 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은 사용자가 수식을 편집할 때 수식의 여러 부분에 색을 칠하여 무엇이 어디로 가는지 파악하는 데 도움을 줍니다. instance 위의 수식을 편집하려는 경우 커서를 끝 괄호 ""를 지나 이동하면 해당 여는 괄호가 동일한 색으로 바뀝니다. 이는 일치하는 괄호가 충분한지 확인하려는 복잡한 중첩 수식에서 특히 유용할 수 있습니다.
추가 예제
다음은 수익 성과 수준에 따라 판매 수수료를 계산하는 매우 일반적인 예제입니다.
- =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%를 반환하고... 등을 의미합니다.
이전 Grades 예와 매우 유사하지만 이 공식은 큰 IF 문을 유지하는 것이 얼마나 어려운지 보여주는 좋은 예입니다. – organization이 새로운 보상 수준을 추가하고 기존 달러 또는 백분율 값을 변경하기로 결정했다면 어떻게 해야 합니까? 당신은 당신의 손에 많은 일을 해야 할 것입니다!
팁
긴 수식을 읽기 쉽도록 수식 입력줄에 줄 바꿈을 삽입할 수 있습니다. 새 줄로 줄 바꿈하려는 텍스트 앞에서 Alt+Enter를 누르면 됩니다.
다음은 논리 순서가 맞지 않는 수수료 시나리오의 예제입니다.
되었습니다. 무엇이 문제인지 알 수 있나요? 수익 비교 순서를 이전 예와 비교합니다. 이것은 어느 방향으로 가고 있습니까? 맞습니다, 상향식($5,000에서 $15,000으로)으로 가는 것이지 그 반대가 아닙니다. 그런데 왜 그렇게 큰 문제가 되어야 할까요? 수식이 $5,000를 초과하는 값에 대한 첫 번째 평가를 통과할 수 없기 때문에 이것은 큰 문제입니다. 12,500달러의 수익이 있다고 가정해 보겠습니다. IF 명세서는 5,000달러보다 크기 때문에 10%를 반환하고 거기서 중지됩니다. 많은 상황에서 이러한 유형의 오류는 부정적인 영향을 미칠 때까지 눈에 띄지 않기 때문에 매우 문제가 될 수 있습니다. 따라서 복잡한 중첩 IF 문에 몇 가지 심각한 함정이 있다는 것을 알고 있다면 무엇을 할 수 있을까요? 대부분의 경우 IF 함수로 복잡한 수식을 만드는 대신 VLOOKUP 함수를 사용할 수 있습니다.
VLOOKUP을 사용하여 먼저 참조 테이블을 만들어야 합니다.
- =VLOOKUP(C2,C5:D17,2,TRUE)
이 수식은 C5:C17 범위에서 C2의 값을 찾는다는 의미입니다. 값이 발견되면 D 열의 동일한 행에서 해당 값을 반환합니다.
- =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 기술 커뮤니티의 전문가에게 문의하거나 커뮤니티에서 지원을 받을 수 있습니다.