티스토리 뷰

사실 IF 함수야말로 함수의 기초이자 엑셀의 시작인데, 이미 재무 함수를 다룬 시점에서야 포스팅하게 되었습니다. IF 함수는 정말 기본중의 기본이고, 모든 프로그래밍 언어에서 이 IF 함수의 구조가 사용된다고 봐도 옳습니다. 

언젠가 한번쯤은 정리하고 넘어가야지 생각만 하고 있었는데, 오늘 그 기회를 갖게 되었습니다. 일단 IF 함수는 엑셀 논리 함수의 대표로, 특정 조건이 '참'일때의 출력 내용과, 반대로 '거짓'일때의 출력 내용을 설정할 수 있습니다. 엑셀 IF 명령어 구문은 "=IF(logic_test, value_if true, value_if false)' 입니다. 아래의 몇가지 예제를 통해서 IF 함수를 완벽 정리하는 시간을 가져볼까 합니다.

 먼저, 특정 한 회사의 영업팀에서는 영업 사원 개별적으로 월매출 100만원을 초과해서 달성 시에, 해당 매출액의 10%를 보너스로 지급한다고 합시다. 아래의 E열 에서 보내서 지급 여부를 확인하고자 하는데, 월매출 100만원 이상을 달성한 사원의 경우 '대상'으로 표시하고, 월매출을 100만원 미만으로 달성한 사원은 '비대상'으로 표시하도록 하였습니다. 보시는 바와 같이, 함수 구성은 "=IF(C3>=1000000,"대상","비대상")' 입니다. 'C3>=1000000'가 '조건'이 되는 것이고, 해당 조건이 참일 때는 텍스트로 대상을 출력하고, 반대로 거짓일 때는 비대상을 출력합니다.

텍스트를 출력해야 하기 때문에, 해당 텍스트, 대상과 비대상을 쌍따옴표 " "로 묶어 주었습니다. 그래서 상기 조건을 만족하는 사원 1, 2, 3, 5, 6은 E열에서 각각 '대상'으로 표시되고 있습니다.

 


이전 엑셀 강좌에서 몇번 조건부 서식을 언급한 적이 있는데, 위에서 '비대상'의 셀에만 연한 빨간색이 채워진 것은 조건부 서식의 '셀강조 규칙', '텍스트 포함' 메뉴를 이용하면 됩니다. 위와 같이 조건부 서식의 영역의 대상 영역 E3:E8까지를 구역 지정하고, 조건 텍스트를 '비대상'으로 입력해 주고, 조건을 만족하는 셀에 적용할 서식을 마지막으로 정해줍니다. 참고로, 조건 텍스트가 '대상'이 아닌것은 '비대상' 텍스트 안에도 '대상' 텍스트가 있어 '대상'과 '비대상'을 구분할 수 없기 때문입니다.

그리고 F열의 함수또한 E열과 마찬가지의 IF 함수 구문입니다. 함수 구성은 '=IF(E3="대상",C3*10%,"지급 불가")'로 E열에서 '대상'으로 표시된 경우, 월매출의 10%를 출력하고, 아닌 경우, '지급 불가'란 텍스트를 출력하는 구조입니다. 앞서 월매출의 10%를 보너스로 주기로 한 내용 기억 나시지요? 물론 여기에서도 조건부 서식을 사용해서 '지급 불가'란 텍스트를 포함하는 셀에에 별도의 서식을 지정해 줄 수도 있습니다.  

다음으로 IF 함수를 중첩해서 사용하는 경우를 아래에서 확인해 보도록 하겠습니다. IF 함수는 최대 7개까지 중첩해서 사용할 수 있는데, IF 함수를 중첩해서 사용한다는 것은 '=IF(조건1, 조건1의 참인 경우, IF(조건2, 조건2가 참인 경우, IF(조건3, 조건 3인 참인 경우, 조건 3이 거짓인 경우)))'과 같이, IF 함수의 조건의 거짓인 경우에 들어가는 인수에 새로운 IF 함수를 사용하는 것입니다.

예를들어, 시험 3과목의 평균이 90점이 넘는 학생은 A 등급을 주고, 80점을 넘는 학생은 B 등급을 주고, 70점이 넘는 경우는 C 등급을 주고, 이 외의 경우에는 'FAIL'로 표시한다고 합시다. 그리고 이 내용을 IF 함수를 중첩시켜 구성한 내용이 아래의 F11 셀입니다. AVERAGE 함수의 구성은 알고 계시지요?

AVERAGE 함수는 특정 셀값들이나 범위의 평균을 구하는 함수로, 구성은 '=AVERAGE(범위)' 입니다. 그리고 이와 같이 IF 함수를 중첩시키는 경우에는 항상 괄호에 주의하셔야 합니다. 간단히 말해 열린 괄호는 닫아주어야 합니다. IF 함수 중첩시에 가장 빈번하게 발생하는 오류의 원인이 이 괄호를 제대로 닫아주지 않았기 때문에 발생합니다.   


이제 마지막으로 엑셀의 또다른 논리 함수인 AND 함수와 OR 함수를 IF 함수와 함께 사용하는 경우를 확인해 보도록 하겠습니다. AND 함수는 구성 인수가 모두 참(TRUE)인 경우 TRUE를 반환하고, OR 함수는 구성 인수 중 하나라도 참(TRUE)인 경우, TRUE를 반환합니다. 이를 IF 함수와 함께 사용하면, '=IF(AND(인수1, 인수2, 인수3), value_if true, value_if false)' 또는 '=IF(OR(인수1, 인수2, 인수3), value_if true, value_if false)'가 됩니다.

아래의 G11 셀의 함수 구성을 풀이해 보자면, C11과 D11과 E11의 값이 각각 60을 초과하고, 세 값의 평균 점수 또한 70을 초과할 때, 'PASS'란 텍스트를 출력하고, 네 인수중 하나라도 참이 아닌 경우에는 FALSE 값을 반환해서, IF 함수의 조건이 FALSE가 되고, 'FAIL' 텍스트를 출력하게 되는 것입니다.


위에서 OR 함수 또한 함께 활용해 본다면, G11 셀의 함수를 '=IF(AND(C11>60,D11>60,E11>60,OR(F11="A",F11="B",F11="C")), "PASS", "FAIL")'로 구성해 볼 수 있을 것입니다. 함수가 좀 복잡해 보입니다만, AND 함수 구성만 따로 떼어내서 확인해 보시기 바랍니다.

 'AND(C12>60,D12>60,E12>60,OR(F12="A",F12="B",F12="C")'의 의미는 F11 값이 A, B, 또는 C인 경우(평균 90을 초과하거나, 80을 초과하거나, 70을 초과하는 경우)에, 동시에 C11과 D11와 D12의 값이 각각 60을 초과한다면 TRUE를 반환하게 되는 것입니다. 그리고 IF 함수 전체에서 앞서의 AND 함수가 TRUE를 반환하면 PASS 텍스트를 출력하게 되는 것이고 말입니다.

혹시 위에서 어떠한 내용이라도 설명이 어려웠다거나, 제가 설명을 생략한 부분이 있다면 아래에 댓글로 남겨주세요.  

 

댓글