엑셀의 IF, AND, OR 등 논리 함수는 프로그래밍에서 사용하는 판단, 분기의 개념이 들어가 있습니다. 처음에는 접근하기 쉽지 않지만 조금만 익히면 단순히 값을 계산하는 수준에서 벗어나 조건을 판별하고 조건별로 별도의 처리를 할 수 있습니다.
논리 함수는 엑셀을 강력한 업무 처리 도구로 만들어 줄 수도 있지만 논리 함수로 만든 복잡한 수식은 나중에 수식을 작성한 나 자신도 못알아 볼 수 있으므로 간단하고 알아보기 쉬운 수식을 만들어서 사용하는 것이 좋습니다.
이번 글에서는 논리 함수의 개념 이해를 위해 간단하게 기본 사용법을 소개합니다. 함수별 자세한 사용법은 '함수별 사용법 페이지'를 참고하세요.
조건 판별하기 - IF 함수
엑셀 논리함수에서 가장 기본인 IF 함수를 사용하여 시험 성적이 80점 이상이면 '합격', 80점 미만이면 '불합격'으로 표시해 보겠습니다.
[D6] 셀에 다음 수식이 입력되어 있습니다.=IF(C6>=80,"합격","불합격") => '합격'
[C6] 셀의 점수가 80점 이상(C6>=80)이므로 '합격'을 표시합니다.
수식을 그림으로 설명하면 다음과 같습니다.
IF 함수는 첫 번째 인수 'C6>=80'의 조건을 만족하면 두 번째 인수 '합격'을 표시하고, 만족하지 못하면 세 번째 인수 '불합격'을 표시합니다.
예시에서는 '합격' 또는 '불합격'이라는 텍스트를 반환하지만 텍스트 대신 다음과 같이 수식을 입력하면 수식의 결과를 반환합니다.
=IF(C13>=80,C13*10%,0) => 8.3
[C13] 셀의 점수가 80점 이상(C6>=80)이므로 [C13] 셀에 입력된 점수에 10%를 곱한 결과 8.3을 표시합니다.
여러 조건 판별하기 - IF 함수 중첩
IF 함수의 두번째, 세번째 인수에 텍스트나 수식을 넣을 수 있다고 했는데 'IF 함수'도 넣을 수 있습니다. IF 함수 안에 또 IF 함수가 있으므로 두가지 조건을 모두 만족하는지 체크할 수 있습니다. 두 번째 IF 함수 안에 또 IF 함수를 넣으면 3가지를 모두 만족하는지 체크할 수 있습니다. 이런 방식으로 IF 함수를 최대 64개까지 중첩하여 사용할 수 있습니다.
IF 함수를 중첩하여 두 과목 모두 80점이상이면 '합격'으로 표시하고 그 외에는 '불합격'으로 표시해 보겠습니다.
=IF(C20>=80,IF(D20>=80,"합격","불합격"),"불합격") => '합격'
첫 번째 IF 함수로 [C20]셀의 국어 점수를 판별해 보니 80점 이상이라서, 또 IF 함수로 [D20] 셀의 영어 점수를 판별해 보니 80점 이상이므로 '합격'을 표시합니다.
※ IF 함수 중첩 시 주의 - IF 함수를 여러 번 중첩하면 수식이 복잡해져 읽기도 어렵고 나중에 수정하기도 어렵습니다. 가능하면 IF 함수의 중첩은 최소한으로 하는 것이 좋으며, 작성한 수식에 IF 함수 중첩이 많다면 문제 해결 방법이 잘못되었을 수 있으므로 다른 방법을 검토해 보아야 합니다.
여러 조건 판별하기 - AND 함수
IF 함수를 여러 번 중첩하여 여러 조건을 판별할 수 있지만 수식이 복잡해서 알아보기 어려운 단점이 있습니다. 이 때는 AND 함수를 이용하여 여러 조건을 모두 만족하는지 한 번에 간단하게 판별할 수 있습니다.
AND 함수로 두 과목 모두 80점이상이면 '합격'으로 표시하고 그 외에는 '불합격'으로 표시해 보겠습니다.
IF(AND(C28>=80,D28>=80),"합격","불합격") => '합격'
AND 함수는 조건을 만족하면 TRUE , 만족하지 못하면 FALSE를 반환하므로, 위와 같이 IF 함수를 조합하여 TRUE이면 '합격', FALSE이면 '불합격'으로 표시해 주어야 합니다.
하나라도 만족하는지 판별하기 - OR 함수
OR 함수는 여러 조건 중에서 하나라도 만족하는지 판별할 때 사용하는 함수입니다. 아래 그림과 같이 두 과목 중에 하나라도 80점 이상인지 판별할 때 OR 함수를 사용할 수 있습니다.
=IF(OR(C36>=80,D36>=80),"합격","불합격") => '합격'
두 과목 모두 80점 이상이므로 '합격' 표시
=IF(OR(C38>=80,D38>=80),"합격","불합격") => '합격'
두 과목 중에 영어는 80점 미만이지만 국어는 80이상이므로 '합격' 표시
기타 논리 함수
위에서 설명하지 않았지만 다음과 같은 논리 함수들도 자주 사용됩니다.
함수 | 사용법 |
IFS | 여러 조건을 판별하고 해당 조건을 만족하는 값을 반환합니다.
여러 조건을 판별하고 값을 구할 때 IF 함수로도 가능하지만 IF 함수가 중첩되므로 수식이 복잡해지고 사용하기가 까다롭습니다. 대신 IFS 함수로 간단하고 알아보기 쉽게 수식을 작성할 수 있습니다. 예) [C15] 셀에 점수가 입력되어 있고 점수 구간별로 성적 등급을 정한다고 했을 때 IFS 함수로 점수별 성적 등급을 구할 수 있습니다. =IFS(C15>=90,"A",C15>=80,"B",C15>=70,"C",C15>=60,"D",C15>=0,"F") |
SWITCH | 여러 개의 값과 비교하여 일치하는 하나의 값을 구해줍니다.
예) [C15] 셀에 평가 등급이 입력되어 있을 때 평가 등급과 일치하는 '등급 표시'를 구해줍니다. =SWITCH(C15,"S","탁월","A","우수","B","보통","C","미흡","D","부진") |
IFERROR | 수식에서 오류가 발생하면 오류가 표시되지 않도록 하거나 오류 대신 다른 값을 표시할 수 있습니다.
예) 다음 수식은 [D13] 셀의 값을 [C13] 셀의 값으로 나눌 때 오류가 발생하면 '수식 오류'라고 표시해줍니다. =IFERROR(D13/C13,"수식오류") |
IFNA | IFNA 함수는 IFERROR 함수와 사용법이 비슷하지만 오류 중에서 #N/A 오류만 처리하고 나머지 오류는 처리하지 않고 원래의 오류를 그대로 표시합니다. |