1. Introduction
엑셀에서 IF함수만큼 직관적이면서 강력한 함수도 드물다. 조건식을 걸어주면(logical_test), 조건에 따라 참일 때([value_if_true])와 거짓일 때([value_if_false])의 값을 각각 설정하는 'Yes or No'식의 구조는 실생활에서도 자주 접하는 사고 방식이기에 한 번만 들어도 쉽게 이해가 된다. 다만 IF함수의 진짜 어렵게 느껴질 때는 '내가 생각하는 조건식이 엑셀의 문법으로 표현이 안되는 경우'이다.
IF함수 강의에서는 보통 'A가 10보다 클 때' 혹은 'B가 인사팀일 때'와 같이 등호와 부등호(<,=,>)만으로 표현 가능한 예시가 대다수이다. 하지만 실무의 세계는 그렇게 간단하지 않다. '계산한 값이 공백일 때'라든지 'A는 10보다 크되, B는 5보다 작을 때'라든지 다층적이고 복잡한 조건식을 활용해야 하는 경우가 많다. 그래서 오늘은 복잡한 조건식을 표현하는 방법에 대해 소개하고자 한다.
2. Keyword
"IF함수의 조건식은 True 혹은 False로 값이 산출된다"
위의 명제를 간단히 설명하자면, IF함수에서 조건식만 따로 떼내었을 때 결과가 True 혹은 False로 나오는 것을 말한다. 예를 들어 3>5는 틀림없이 거짓(False)다. 마찬가지로 A2셀의 문자가 "인사"인지 대조하는 것 역시 참, 거짓이 분명하게 알 수 있다. 따라서 내가 원하는 조건을 참, 거짓을 판별할 수 있는 이분법적 구조로 만들어야 한다. 물론 나 역시 모든 Case를 알고 있지는 못하지만, 주로 사용하는 IS함수와 논리함수, 그리고 부등호 응용 위주로 설명하고자 한다.
3. 두 번째 방법_논리함수 (AND, OR, NOT 함수)
첫 번째 방법인 IS함수에 대해서는 아래에서 확인해보자
논리함수도 개념은 매우 쉽다. 우선 AND/OR함수부터 알아보자. 기본전제는 조건이 2개 이상인 경우에 사용한다. AND함수는 두 개의 조건이 모두 참인 경우에만 True값을 변환한다. 예를 들어, 조건1이 "색깔이 노랗다", 조건2가 "모양이 길다랗다"라고 할 때, AND함수를 적용한다면 "색깔이 노랗고, 모양이 길다란" 대상만이 참이 된다. 과일에 예를 적용해보자.
바나나 : "색깔이 노랗고, 모양이 길다랗다" > TRUE(참)
망고 : "색깔이 노랗고, 모양이 둥그렇다" > FALSE(거짓)
오이 : "색깔이 초록이고, 모양이 길다랗다" > FALSE(거짓)
사과 : "색깔이 붉고, 모양이 둥그렇다" > FALSE(거짓)
한편 OR함수는 두 가지 조건중에 하나만 충족되어도 결과가 참이 된다. "색깔이 노랗거나, 모양이 길다란" 대상은 모두 참이다.
바나나 : "색깔이 노랗고, 모양이 길다랗다" > TRUE(참)
망고 : "색깔이 노랗고, 모양이 둥그렇다" > TRUE(참)
오이 : "색깔이 초록이고, 모양이 길다랗다" > TRUE(참)
사과 : "색깔이 붉고, 모양이 둥그렇다" > FALSE(거짓)
이왕 한 김에, NOT 함수까지 알아보자. NOT함수는 간단히 말해 참, 거짓을 뒤바꾸는 함수이다. 바로 위의 Case에 NOT함수를 적용하면 바나나, 망고, 오이가 FALSE(거짓)가 되고, 사과는 TRUE(참)이 된다. 사실 AND, OR, NOT 함수는 중학교 때 배우는 내용과 매우 흡사하기 때문에 이렇게까지 길게 설명하지 않아도 되는 부분이다.
다만! 논리함수를 쓸 때, 가장 헷갈리는 부분은 조건을 수식으로 표현하는 방법이다. 만약 IF함수를 활용하여 '성별이 남자'이고 '나이가 30살 미만'인 경우만 '(군대에) 취직'이라고 산출되는 함수를 적용한다고 해보자. 우선 바로 AND함수를 써야겠다는 생각이 떠오를 것이다. 그 다음은 IF함수의 조건에 AND함수를 적용해야 한다. 그런데 AND함수를 표현하기 위한 몇 가지 보기가 헷갈릴 것이다. =(C3="남자" AND D3<30)일지, =AND(C3="남자", D3<30)일지 =(C3="남자") AND (D3<30) 일지 막상 쓰려고 하면 헷갈린다.
과연 정답은 무엇일까? 아래에서 확인해보자
그렇다. 논리함수를 쓸 때에는 'AND(조건1, 조건2, ...) 이런식으로 괄호 안에 조건을 늘려나가는 식이다. 굳이 외울 필요는 없다. 가물가물하면 직접 몇 가지 해보면 된다(어렵지가 않다!). 아니면 내 블로그에 잠깐 들려서 확인하던지...
'업무자동화 > Excel' 카테고리의 다른 글
[VBA] 003. 데이터와 워크시트 대조하여, 새로운 시트 만들기 : Set, Range, Name (0) | 2020.11.18 |
---|---|
[VBA] 002. 워크시트 병합하기(2) : Count, CurrentRegion, Offset, Resize, End (0) | 2020.11.10 |
[VBA] 001. 워크시트 병합하기(1) : Add, Name, Activate, EntireRow(EntireColums), Select, Copy (0) | 2020.11.08 |
1편_IF함수에서 내가 생각하는 조건식이 <,=,>로 표현이 안될 때 (1) (0) | 2020.01.22 |
Prolog_엑셀은 드럽게 눈치없는(?) 후임과도 같다. (0) | 2020.01.12 |
최근댓글