엑셀 | if 함수
Apr 5, 2021
엑셀의 if 함수를 먼저 만났으므로 if를 엑셀 고유의 기능인 것처럼 생각했었다.
요즘 Python이나 R 같은 프로그래밍(script 기반 명령) 언어가 유행을 하여 알게 되었는데 엑셀이 프로그래밍에 있는 기능을 일부 인용하여 기능으로 사용할 수 있게 한 것이 아니었나 싶다. Python이나 R 또는 다른 프로그래밍 언어에서도 if가 있는 것을 보면 엑셀도 이전에 먼저 만들어져 있던 논리 구조를 인용하여 기능화 한 것이 아닐까? 추측한다.
if 는 만약 이라는 사전적 의미로 조건문이라고 한다. =if(조건, 참, 거짓) 이렇게 생각하면 된다. “만약(if) 이러한 조건에 따라서 맞으면 참 자리의 명령 또는 내용을 산출하고 아니라면 거짓 자리에 쓴 것을 산출해줘.” 하고 엑셀에게 명령해 주는 것이다.
이러한 조건문은 매우 유용하다. 엑셀을 잘 사용하지 못한다고 하는 장기간 엑알못(엑셀을 잘 알지 못하는)유저들도 최소한 적어도 if함수는 알고 사용하는 것 같다.
if의 용도
if는 다양한 상황에서 응용력을 충분히 발휘하기만 한다면 유용하게 쓰일 수 있다. 만약에 0보다 큰 수를 양수라고 표시하고 0보다 작거나 같은 수를 음수라고 표시하고 싶다면 =if(셀>0,“양수”,“음수”) 이렇게 설정해 주기만 하면 여러가지 숫자 옆에 양수 또는 음수라고 표시해 줄 수 있다.
““를 붙이는 이유는 엑셀의 셀이 글자를 말 그대로 글자(text)라고 인식하고 "” 안의 글자 그대로 보여달라고 엑셀에게 알려주기 위함이다. R에서는 Character라고 부르고 Python에서는 String1이라고 부른다. 프로그램마다 Character나 String이라고 부르지만 결국 글자를 찍어준 그대로 글자로 보여달라고 하는 것이다. 무슨 이름으로 부르던 이름은 중요하지 않고 결과가 그렇게 이루어지면 된다. ““로 양 옆을 묶어주지 않으면 에러가 발생할 수 있다.
에러 발생 시 당황 할 것 없이 왜 에러가 발생 했는지 빨리 이해하고 고쳐주기만 하면 된다. 컴퓨터는 사람의 생각을 개떡같이 말해도 알아서 찰떡같이 적당히 대충 이해 할 수 없기 때문이다. 개떡을 주면 개떡이라고 하고 찰떡을 주면 찰떡이라고 하는 것이 컴퓨터이다.
다른 예를 들면 만약에 여러 학생의 점수가 있는데 90~100점은 A학점, 80~90점은 B학점, 70~80점은 C학점, 그 외에는 그냥 F학점을 주고 싶다고 한다. 이 것을 하나 하나 사람의 눈으로 보면서 A, B, C, F를 판별하고 손으로 입력하는 것은 너무 귀찮고 힘든 일이다.
실제로 누군가가 엑셀에 Data 형태로 나열이 된 것을 하나 하나 보면서 A, B, C, F를 판단하고 키보드를 두르려서 입력한다면 너무나도 안타까운 일이다. 물론 학생이 두세명 정도 된다면 한 눈에 보고 타이핑해서 끝내는 것이 가장 효과적일 수 있으나 학생 수가 백명, 천명, 또는 만명이거나 백만명이라면(극단적인 상황을 가정하고 작은 규모를 규격화하는 습관이 있다면 어느 날 예기치 않게 극단적인 일이 생겼을 때 아무렇지 않게 순식간에 해결 할 수 있다.) 간단하게 함수식을 작성하고 더블클릭으로 마무리 하는 사람과 하나 하나 보면서 판단하고 A~F를 타이핑해서 처리하는 사람의 속도는 몇만배 이상일지도 모른다.
96점인 학생1, 83점인 학생2, 32점인 학생3, 이렇게 3명의 학생이 있다고 가정 해 보자. 3명이라면 한 눈에 보아도 A, B, F 학점이 나누어지는 것이 보인다.
학생 | 점수 | 학점 |
---|---|---|
1 | 96 | A |
2 | 83 | B |
3 | 32 | F |
그러나 이러한 학생이 300,000명 각기 다른 점수를 획득하여 기록되었다고 확대하여 가정한다면 300,000번의 판단과 타이핑을 해야 한다면 매우 힘든 일이 될 수가 있다. 여기서 우리는 그 어떠한 프로그래밍을 할 줄 모른다고 하더라도 마치 프로그래밍을 하는 것처럼 엑셀을 활용하여 수 많은 학생의 학점을 A,B,C,F로 매길 수가 있다. 물론 복잡하고 다양한 엑셀의 수많은 함수를 사용하거나 또는 R이나 파이썬 같은 프로그래밍을 통해서 구현할 수도 있지만 단지, 엑셀의 if 함수 하나로도 인간이 하지 못할만한 빠른 속도로 수행 할 수가 있다.
여기에 더해서 학점별로 학생수를 그루핑하고 수를 집계하거나 필터링해서 일정 학점의 학생을 추려내는 등 추가적인 작업을 단지 엑셀의 if를 비롯하여 순식간에 해 낼수가 있다. 여기에 엑셀 | 셀 서식 (Ctrl + 1)과 더 빠른 단축키 에서 다루었던 단축키들을 적절하게 섞어 사용한다면 단순한 몇 가지 기능으로도 엄청난 결과물을 쉽게 얻을 수가 있다.
다만 90점 이상, 80점 이상, 70점 이상을 판단하고 이 외에는 F로 처리하면 되므로 if를 중첩하여 세번 넣어주면 된다.
=IF(B2>=90,“A”,IF(B2>=80,“B”,IF(B2>=70,“C”,“F”))
만약, 90점 이상2이라면 A, 아니라면 만약 80점 이상이라면 B, 아니라면 만약 70점 이상이라면 C, 아니라면 F 로 함수식을 써주고 괄호를 세번 닫는다.
이렇게 한번만 판단하는 수식을 넣어 주고 나머지 아래의 행들에는 자동 채우기 기능으로 동일하게 판단하고 입력되도록 하면 수십만개의 판단과 입력 대신 순식간에 원하는 결과에 도달하게 된다.
단축키 응용
엑셀 | 셀 서식 (Ctrl + 1)과 더 빠른 단축키 에서 다루었던 단축키를 응용해 보면 기록된 데이터를 빠르고 편하게 다룰 수 있다.
- 다음과 같이 함수식을 포함한 셀을 가장 위에 두고 아래로 범위를 잡는다.
- Ctrl + d 를 누른다.
- 가장 위의 열 index에 커서를 위치하고 Shift + Space를 누른다.
- 행을 잡고 나서 Ctrl + Shift + L 을 누른다.
- 학점 셀을 눌러서 A 학점을 필터링 한다.
3개가 아니라 300,000개의 데이터가 있다고 상상한다면 A학점만 따로 보고 싶거나, B학점만 따로 보고 싶거나, 혹은 F학점만 따로 복사해서 다른 시트에 붙이고 싶을 경우 이러한 단축기 몇 번을 누르는 것으로 빠르고 간단하게 원하는 목표를 달성 할 수 있다.