나중에 쉽게 만들고 이해할 수있는 중첩 된 IF 문과 대안을 살펴 봅니다.
by David Goodmanson
저는 지난 기사에서 간단한 Excel IF 문과 유용한 사촌 인 CountIf 및 SumIF. 하나의 셀에 여러 IF 함수가있는 중첩 된 IF 문도 다루었습니다.
이번에는 중첩 된 IF와 특히 다음과 같은 대안을 자세히 살펴 보겠습니다. 나중에 쉽게 만들고 이해할 수 있습니다.
다음으로 일부 VBA 코드 (Visual Basic for Applications) 및 Select Case 문에서 IF 문을 활용하는 몇 가지 대체 방법을 살펴 보겠습니다.
p>
B 열의 등급 번호는 C 열의 텍스트 설명으로 바뀝니다. Excel에는 모든 방법이 있습니다. 이와 같은 간단한 예에서는 중첩 된 IF로 충분하지만 다른 옵션이 있습니다. 다른 사람들이 더 쉽게 읽을 수 있습니다.
아무도 긴 중첩 IF 그룹을 만들려고하지 않습니다. 보통 시간이 지남에 따라 모든 사람에게 나타납니다. 2 개 또는 3 개의 옵션이있는 단순 중첩 IF는 점점 더 많은 IF와 함께 읽을 수없고 코딩 오류가 발생하기 쉬운 지점까지 확장 될 수 있습니다. 다음은 40 개 수준의 ‘간단한’중첩 IF입니다.
=IF(A2="A",TRUE,IF(A2="B",TRUE,IF(A2="C",TRUE,IF(A2="D",TRUE,
IF(A2="E",TRUE,IF(A2="F",TRUE,IF(A2="G",TRUE,IF(A2="H",TRUE,
IF(A2="I",TRUE,IF(A2="J",TRUE,IF(A2="K",TRUE,IF(A2="L",TRUE,
IF(A2="M",TRUE,IF(A2="N",TRUE,IF(A2="O",TRUE,IF(A2="P",TRUE,
IF(A2="Q",TRUE,IF(A2="R",TRUE,IF(A2="S",TRUE,IF(A2="T",TRUE,
IF(A2="U",TRUE,IF(A2="V",TRUE,IF(A2="W",TRUE,IF(A2="X",TRUE,
IF(A2="Y",TRUE,IF(A2="Z",TRUE,IF(A2="AA",TRUE,IF(A2="AB",TRUE,
IF(A2="AC",TRUE,IF(A2="AD",TRUE,IF(A2="AE",TRUE,IF(A2="AF",TRUE,
IF(A2="AG",TRUE,IF(A2="AH",TRUE,IF(A2="AI",TRUE,
IF(A2="AJ",TRUE,IF(A2="AK",TRUE,IF(A2="AL",TRUE,IF(A2="AM",TRUE,
IF(A2="AN",TRUE,FALSE))))))))))))))))))))))))))))))))))))))))
Excel 2007에서는 하나의 수식에 64 개의 중첩 된 IF를 가질 수 있지만 행운을 빌어 이러한 줄을 디버깅 할 수 있습니다. 중첩 된 IF는 수식 색상 코딩 등이있는 최신 버전의 Excel에서 제어하기가 조금 더 쉽습니다. 이러한 도우미에도 불구하고 많이 중첩 된 IF는 피하는 것이 가장 좋습니다.
중첩 된 옵션이 나중에 확장 될 수 있다고 생각되면 고려해보십시오. 처음부터 대안 중 하나입니다.
중첩 IF
먼저 중첩 IF 함수의 경우 셀 C3의 수식이 아래에 나와 있습니다.
=IF(B3=5, "Boom", IF(B3=4, "Recovery", IF(B3=3, "Turning Point",
IF(B3=2, "Recession", IF(B3=1, "Depression")))))
중첩 된 IF는 논리적 테스트를 평가하는 왼쪽에서 오른쪽으로 작동합니다. B3 = 5, 해당 등급이 참이면 IF는 “Boom”텍스트를 삽입합니다. B3이 5와 같지 않으면 IF는 다음 논리 테스트 (B3 = 4)를보고 각 단계를 차례로 평가합니다.
- IF는 논리적 테스트가 충족 될 때까지 각 테스트를 계속 평가 한 다음 함수를 종료합니다.
- 첫 번째 IF의 왼쪽에있는 등호는 첫 번째 IF에 대해 한 번만 필요합니다. , 각 중첩 수준에 대해 IF 텍스트를 입력합니다. (모든 중첩 워크 시트 함수에 해당됩니다.)
- 여는 대괄호 “(“의 수는 닫는 대괄호의 수와 일치해야합니다. “)”. 위의 수식 예에는 5 개의 여는 괄호가 있으며 끝에 5 개의 닫는 괄호가 일치합니다. 최신 버전의 Excel에는 괄호와 따옴표를 똑바로 유지하기 위해 더 나은 색상 및 오류 검사 기능이 있지만 중첩 된 IF도 마찬가지입니다. 문제를 해결해야합니다.
조회 테이블
중첩 된 IF의 복잡성을 해결하는 한 가지 방법은 참조 테이블에 연결된 VLOOKUP을 사용하는 것입니다. 워크 시트에서.
표는 다음과 같습니다.
C 열의 함수 이제 원본 테이블의 값은 다음과 같습니다.
=VLOOKUP(B3,$G$2:$H$6,2,FALSE)
일반적으로 동일한 워크 시트의 다른 탭에 조회 테이블을 배치하지만 데이터는 어디에서나 가져올 수 있습니다.
VBA – IF 문
대안은 사용자 지정 VBA 함수를 만들고 전체 IF 논리를 VBA 코드에 넣는 것입니다.
이것은 다음과 같은 장점이 있습니다. 훨씬 쉽게 읽고 이해할 수 있습니다.
단점은 코드 보안이 필요하고 VBA 코드가 합법적이고 바이러스가 아니라는 우려입니다. 사용자가 코드가 첨부 된 워크 시트를 얻는 데 익숙하지 않은 경우 VBA 옵션을 사용하지 않는 것이 좋습니다.
여기에 코드 스 니펫이 있습니다.이 문서의 시작 부분에있는 중첩 IF와 동일한 논리이지만 훨씬 쉽게 읽을 수 있습니다.
" Using a VBA if statement structure
" ==================================
If Rating = 5 Then
Prediction = "Boom"
ElseIf Rating = 4 Then
Prediction = "Recovery"
ElseIf Rating = 3 Then
Prediction = "Turning Point"
ElseIf Rating = 2 Then
Prediction = "Recession"
ElseIf Rating = 1 Then
Prediction = "Depression"
End If
VBA : Select Case
마지막으로 더 읽기 쉬운 구조는 Select Case 문입니다.
"Using a Select Case structure
"=============================
Select Case Rating
Case 5
Prediction = "Boom"
Case 4
Prediction = "Recovery"
Case 3
Prediction = "Turning Point"
Case 2
Prediction = "Recession"
Case 1
Prediction = "Depression"
End Select
Select Case 문은 최소한의 반복적 인 키 입력으로 다양한 대안을 평가하는 방법을 제공하는 또 다른 VBA 구조입니다. . 또한 더 간단하고 읽기 쉬우 며 관심있는 변수에 대해 3 개 이상의 대안이있을 때 사용해야합니다.
VBA : 이상…
마지막으로 몇 가지 아이디어를 제공합니다. Select Case의 더 큰 힘의 확장 버전은 다음과 같습니다.
Select Case Rating
Case 4.5 To 10
Prediction = "Boom"
Case 3.5 To 4.49
Prediction = "Recovery"
Case 2.5 To 3.49
Prediction = "Turning Point"
Case 1.5 To 2.49
Prediction = "Recession"
Case 0.5 To 1.4
Prediction = "Depression"
Case 0 To 0.49
Prediction = "Money under the Mattress"
Case Else
Prediction = "No prediction - there"s no economy left!"
End Select
이 버전은 값 범위 (예 : 3.5 이상 4.5 이하 등급)를 테스트하고 다음과 같은 분수 등급을 제공하는 사용자를 허용합니다. 2.5.
또한 구조의 맨 아래에는 “Else”컨트롤이 있습니다. 기본적으로 ev 이전 Elseif에서 다루지 않은 기타 사항입니다. 등급에 해당하는 것이 없으면 구조의 Else 부분이 대체 제어를 제공합니다.
그것이 IF 함수 시리즈에 대한 것입니다. 피드백, 질문 및 제안을 계속해서 보내주세요. 다음에 뵙겠습니다.
참조
- Excel의 SUM이 훨씬 더 많습니다
- 복잡한 Excel 만들기 사용하기 쉬운 셀
- 더 많은 중첩 IF 옵션
- Excel의 CHOOSE 옵션
- Excel의 IF 함수