Today's Agenda

재귀적  IF함수는 무엇이고, 그 응용 방법은?

오늘 설명한 내용은 종종 맞닥드리는 특수한 상황에서 쓸 수 있는 노하우 입니다. 뭐라고 제목을 써야 오늘 얘기할 내용을 잘 나타내는 것일지 고민을 많이 했는데 어떨지 내용을 한 번 보고 평가해주시죠. 


어떤 상황에서 쓰는 것인지?

아래 예시를 보시면 책이름이 listing되어 있고, C열에는 그 책을 구분하는 분류에 대한 정보가 들어 있습니다. 그런데 B3부터 B5까지 모두 문학에 대한 책이라서 인지 C3에만 '문학'이라는 정보가 들어있습니다. C4, C5는 빈칸으로 되어 있습니다. 경제경영도 영어도 마찬가지로 목록의 첫 번째에만 Type에 대한 정보가 들어있습니다. 이럴 때 C4-C5, C7, C9에 알맞은 Type정보를 넣는 법에 대한 내용입니다.


재귀적 IF 함수의 구성

D3셀을 보실까요? 바로 옆칸 C3셀이 빈 칸이 아니면, 즉 어떤 값이 채워져 있으면 그 값을 가져다 쓰고, 빈 칸이면 D2에 있는 칸에 있는 내용을 가져다 써라 라고 되어 있습니다. 그리고 C3는 빈 칸이 아니므로 D3는 문학이라는 내용으로 채워져 있습니다. 이 함수를 9행까지 복사하면 어떤 일이 일어날까요?


빈 칸을 모두 적절한 값으로 채우고 있습니다. D4-D5에는 문학을, D7에는 경제경영을 D9에는 영어를 말이죠. C열에는 각 Type의 첫번째 책에만 값이 들어가 있지만, D열에는 모든 책에 Type 정보를 채워 넣었습니다. 


재귀적이라 이름 붙인 이유는 프로그래밍에서 재귀함수가 동작하는 방식과 유사해서 인데요. 위의 예제에서는 D4는 D3의 값을 가져다 쓰고, D5는 D4의 값을 - 결과적으로는 D3의 값을 -  가져다 쓰는 반복적인 구조로 이루어져 있어서 이름붙여 보았습니다. 


종종 실무에서 쓰는 패턴의 IF함수이므로 기억해 두시면 좋을 것 같습니다. 


응용 예제

그럼 이 패턴을 응용해 볼까요? 이번엔 모든 책에 Type별로 번호를 붙여 보겠습니다. 문학1, 문학2, 경제경영1 이런식으로 말이죠. 손으로 Key-In하는 것 말고 어떤 방법이 있을까요? 이 포스팅의 주제가 재귀적 IF함수인 만큼, 답은 재귀적 IF함수일텐데구체적으로는 어떻게 될까요?


E3셀을 보시면 아까와 유사하지만 조건에 해당하는 내용이 조금 바뀌었습니다. 


IF(D3=D2, E2+1, 1)

D3와 D2가 같으면- 즉 이번 책의 Type이 바로 위 행의 책 Type과 같으면- 위 셀 숫자에 1을 더하라. 그러나 D3와 D2가 같지 않으면, 즉 이번 책의 Type이 새롭게 등장하는 것이면  숫자로 새롭게 1을 넣어라라고 되어 있습니다. 이 내용을 주욱 드래그해서 복사하면 위와 같은 결과를 얻으실 수 있습니다. 


오늘 재귀적 IF함수에 대해서 두 가지 예제를 들어보았는데, 어떠셨는지요? 조금만 익숙해지면 다양하게 활용할 수 있는 패턴이고, 이러한 IF함수의 형태는 조금만 더 변형하면 Excel에서 스위치처럼 사용할 수도 있습니다. 일전에 IB와 함께 일하며 터득한 노하우 인데, 이것도 다음에 기회가 되는대로 올리도록 하겠습니다. 



130122_Sample01.xlsx





AND