엑셀 함수중에 가장 위력적인 if에 대해서 알아보기로 하겠습니다.
먼저 용도를 한번 알아보죠. if는 조건분기함수라고 합니다. 즉 조건을 만족하는 경우 A를 표시하고 조건을 만족하지 못하면 B를 표시하도록
하는 선택이 가능한 함수입니다.... 따라서 하나의 결과를 표시하는 단순한 함수와는 달리 어느 위치에와서는 선택의 갈림길에서 마치 전에 모 개그맨이 했던 그러거와 비슷하지요...
그럼 실무에서는 어떻게 쓰이고 있는지 알아보죠. 실무에서는 평가를 내릴 때 사용하게 됩니다. 즉 잘잘못을 가려 평가를 내리고자 하는 경우 입니다. 예를 들어 어떤 영업사원의 실적수가 회사에서 제시된 임의의 값(120이라고 가정하죠)보다 이상이면 "우수", 그렇지 못하면 "부진"을 표시하자고 한다고 하죠. 이 영업사원이 수완이 좋아서 실적을 1월에는 150건을 했다 치면 "우수"가 되고 2월에는 상황이 안좋아 98건을 했다 치면 "부진"이 되는겁니다. 물론 이러한 모아니면 도 또는 흑과 백 등 이분법적인 평가는 좋아보이지 않네요. ^^* 그래서 더더욱 많은 평가 단계를 제공함으로써 여러 조건이 사용되기도 한답니다. 예를 들면 실적 건수가 120이상이면 "우수", 90이상이면 "보통", 90미만이면 "부진" 이런 식으로 말입니다.(한결 부드러워진 느낌이 드는지요? ^^* 어릴 적 초등학교때 성적을 수,우,미,양,가로 나누어진거 기억하시지요?)
이번에는 if의 형식을 알아보죠. if는 3개의 인수를 가집니다. 그 인수의 구분은 쉼표(,)를 사용합니다. 다음과 같은 식에서 보듯
=if(A3>=80,"합격","불합격")
①논리조건식 : 기준셀주소 논리연산자(>=,<=,>,<,=,<>) 비교값(논리 연산자의 결과는 TRUE/FALSE의 결과가 나오게 됩니다.)
②참실행문 : 논리조건식의 결과가 참인경우 실행되는 문
③거짓실행문 : 논리조건식의 결과가 거짓인경우 실행되는 문
부연설명을 더 드리면 논리조건식을 사용하느냐에 좀더 주목을 해보죠. 논리조건식의 결과는 항상 논리값(TRUE/FALSE)로 결과를 나타냅니
다. 따라서 논리조건식 결과가 TRUE이면 2번째 인수인 참실행문을 선택하여 실행하며 논리조건식 결과가 FALSE이면 3번째 인수인 거짓실행문을 선택하여 실행하는 것입니다. 만약에 논리값의 결과를 가지지 못한다면 정확한 결과를 표시할 수가 없답니다.
물론 논리조건식대신에 직접 논리값(TRUE/FALSE)이나 논리연산식을 입력해도 가능합니다. 예를 들면 =if(TRUE,"천재","바보")나 =if(4<3,"천재","바보")식으로 말입니다. 이렇게 해도 결과는 천재, 바보로 출력이 됩니다. 문제는 논리값(TRUE/FALSE)이나 논리연산식을 입력하게된다면 수식의 채우기핸들을 사용할 수 없게 됩니다. 그래서 나름대로 첫번째 인수인 논리조건식이라 부른 이유도 또 그 구성도 3위일체(기준셀주소 논리연산자 비교값)가 됨을 아실겁니다. 가령 점수가 A3:A9까지 입력되어 있다고 가정해보죠. 수식은 B3에 다음과 같이 =if(A3>=70,"합격","불합격") 입력하고 나머지 A4:A9까지는 수식의 채우기핸들을 이용하면 수월하다는 거지요. 물론 데이터가 몇개 없이 A3에 점수가 75점이라고 입력되어 있어 =if(75>=70,"합격","불합격")라고 직접 입력하신다면 어쩔 수 없고요. ^^* 후에 데이터가 500개 있다면....대략 난감이죠
자 그럼 자격증을 위한 if함수의 해결 플로우를 말씀드자면 항상 그런것은 아니지만 제가 제시하는 방법이 좋다고 보기에
1. 실행문의 수가 몇개인가?
예)점수가 80점 이상이면 "우수", 점수가 60점 이상이면 "보통", 점수가 60점 미만이면 "부진" 이와 같은 경우는 실행문이 우수/보통/부진이 되므로 3-1=2개가 되는거지요? 자세히 보시면 나중에 나오는 60점 이상과 미만은 1개짜리의 단순 IF가 되므로 -1이 되어야만 하는 필연적인 이유.... IF의 수가 2개 이상이면 다중if라고 합니다.
=if(점수>=80,"우수",if(점수>=60,"보통","부진"))
2. 논리조건식의 수가 몇개인가?
예)필기도 80점 이상이고 실기도 80점 이상이면 "합격", 그렇지 않으면(나머지는) "불합격" 이와같은 경우는 조건식이 필기와 실기를 같이 사용해야 합니다. 중간에 '~이고'/'~이면서'로 연결되면 AND를 사용하시고, 중간에 '~이거나'/'~또는'으로 연결된 경우는 OR함수를 사용하세요
=if(AND(필기>=80,실기>=80),"합격","불합격")
3. 논리조건식에서 기준셀주소가 일부인 경우
예)기차코드의 끝자리가 1이면 "새마을호", 2이면 "무궁화호", 3이면 "통일호"를 표기하라.. 여기서 주목할 사항은 기차코드가 4자리(꼭 4자리여야만 하는건 아니다)인경우 절대 1과 같은 수가 없으므로 모두 거짓이 되어 통일호가 나오게 된다. 이런경우는 RIGHT함수를 이용하여 기차코드에서 끝자리 한자리를 추출한 부분값을 기준셀로 사용하여야 합니다.
=if(right(기차코드,1)="1","새마을호",if(right(기차코드,1)="2","무궁화호","통일호"))
자 여기서 한가지 주의하세요. 문자열 추출 함수(LEFT,RIGHT,MID)로 걸러지는 숫자는 문자처리됩니다. 개별적으로 테스트해보면 셀의 왼쪽에 정렬되어 있음을 확인하실 수 있을겁니다. 그래서 숫자임에도 불구하고 "1"이런식으로 한거랍니다. 물론 Value라는 함수(모든 문자값을 숫자로 변경)를 사용하라고 한다면 다음과 같이 하셔도 됩니다.=if(value(right(기차코드,1))=1,"새마을호",if(value(right(기차코드,1))
=2,"무궁화호","통일호"))
4. 논리조건식을 구성하는 기준셀주소에 또 다른 함수가 들어가는 경우도 있습니다.
예) 순위가 3등까지는 "우수반", 5등까지는 "보통반", 8등까지는 "부진반"을 표시하는 경우 =if(rank(순위셀,순위절대범위)<=3,"우수반",if(rank(순위셀,순위절대범위)<=5,"보통반","부진반"))
순위에서는 3등까지는의 의미가 3등이하가 됨을 주의하세요~~!
물론 4번의 경우는 일반적인 엑셀 작업에서는 순위라는 필드를 새로 구하고 난다음 해도 됩니다. 그러나 실기시험의 경우는 수험생이 직접 데이터를 추가 입력이 불가능하다는 거죠. 따라서 순위를 별도로 입력하지않고 순위함수를 사용하여 기준셀주소로 바로 사용할 수 있다는 겁니다.
사무자동화 실기의 경우는 3번까지만 하시면 됩니다. 컴활을 준비하시는 경우는 물론 4번까지 다 하셔야 하고요. 도움이 되셨음 합니다.
if를 정복하는 그날까지........
첫댓글 와.. 정리 잘하셨네요. 참고로 if(rank(),1,2) 스타일의 문제에서 rank함수 사용시 순위를 구할 방법(내림, 오름차순)에 대한 부분을 생략하시는 분들이 많은데.. 아무리 내림차순이 생략 가능할지라도 생략을 안하시고 사용하시는게 시험장에서 헛갈리지 않는 방편이라고 생각합니다.