티스토리 뷰

아래는 이전에 운영하던 엑셀 컴활 사이트에 올라온 질문과 답변입니다.

** 님의 질문입니다

제목 : IF(MID  <-- 이해가안되요
내용 :
9학번의 3번째부터 2문자가 01이면 ‘전자과’, 02이면 ‘비서과’, 03이면 ‘영어과’로 표시

=IF( MID( A12,3,2 ) = "01", "전자과", IF( MID( A12,3,2 )="02", "비서과", "영어과" ) )


이거 답이 왜 이렇게 나오는 건가요? 설명 좀 해주시면 감사하겠습니다.

마늘빵의 답변입니다

IF 함수 중첩 질문의 엑셀 답변[그림1] IF 함수 중첩 질문의 엑셀 답변



.....
질문하신 수식은 엑셀 함수 중첩을 이용한 수식입니다. 엑셀 함수 중첩을 어렵게들 생각하시는데 그러실 이유가 없습니다. 함수 중첩에서 중요한 것 한 가지는 안쪽에 포함된 함수의 결과가 바깥쪽 함수의 인수로 사용된다는 것입니다.

위의 경우도 엑셀 문자열 함수 MID 함수를 사용하여 문자열의 일부를 추출해 비교하고 있습니다. ( [그림1] 붉은색 라인 참고 )

또 수식에서 IF 함수 안에 IF 함수가 사용되고 있습니다. 이유는 질문에서는 경우의 수가 '전자과', '비서과', '영어과' 로 셋입니다. 하지만 IF 함수는 참, 거짓을 가늠하는 함수로 두 가지의 결과밖에 얻을 수 없지요. 하여서 IF 함수 안에 다시 IF 함수를 포함한 것입니다. ( [그림1] 녹색라인의 비교, 참인 경우는 노란색라인, 거짓인 경우는 다시 파란색 IF 함수 )

여기서 또 한가지 유념하셔야 하는 것은 수식의 실행은 바깥쪽에서 부터 차례로 진행됩니다. 위의 문제를 예로 설명드리면 IF 함수로 조건 비교를 합니다. 이때 MID 함수를 이용하여 A12셀의 문자열의 3 번째자리에서 2 문자를 추출하여 '01' 인지 비교합니다. ( [그림1] 녹색라인 )

만일 이를 만족한다면 '전자과' 를 반환하고 이 수식은 종료됩니다. ( [그림1] 노란색 라인 )

하지만 이 조건을 만족하지 못한다면 안쪽의 중첩된 IF 문이 실행되면서 다시 조건 비교하고 만족하면 '비서과' , 그렇지 않은 경우는 '영어과' 를 반환합니다.

중첩 IF 함수에서 유념하셔야 할 또 한 가지는 바깥쪽의 비교를 만족한다면 참 일때 값을 반환하고 그대로 수식은 종료된다는 것입니다. 나머지 수식이 얼마나 길게 더 있던 상관이 없습니다.
.....

이상이 세가지 이상의 결과를 선택하기 위한 엑셀의 IF 함수 중첩에 관한 간단한 질문과 답변입니다. 앞으로 이런식의 문답 형태로도 엑셀을 배워보겠습니다.

마늘빵.


댓글