설찬범의 파라다이스
글쓰기와 닥터후, 엑셀, 통계학, 무료프로그램 배우기를 좋아하는 청년백수의 블로그
엑셀 나이계산 (1)
엑셀 할머니 21 - 엑셀 만나이 계산하기
반응형





할머니, 생년월일을 알면

엑셀에서 나이계산을 할 수 있나요?







그럼. 그전에 계산식부터 생각해 보자.

수학으로 식만 구할 수 있다면

엑셀에서는 대부분 구현할 수 있으니.





2000년생이라고 가정해 볼까?




2000년에 태어나면 2000년에는 1살,

2001년에는 2살, 2002년에는 3살...








그럼 2018년에는 몇 살일까?







19살이겠죠.








그럼 식은 어떻게 될까?







현재 년도에서 태어난 년도를 뺀 다음

1을 더하면 나이가 되겠네요.







한국식 나이는 그렇게 계산하지.

물론 요즘 사람들은 싫어하는 것 같다만.







하긴, 1월 1일에 태어난 사람과 12월 31일에 태어난

사람이 년도가 같다고 나이가 같으면 조금 이상하겠구나.







아무튼 엑셀로 나이를 계산한다면 이렇게 되겠지.





=YEAR(TODAY()) - YEAR (생년월일) +1






TODAY는 뭐죠?















TODAY는 오늘 날짜를 반환하는 함수란다.

괄호 안에는 아무것도 넣을 필요 없단다.




*만약 TODAY 함수가 자동으로 업데이트되지 않는다면

파일 - 옵션 - 수식 - 계산 옵션에서 자동을 선택합시다.







그럼 만 나이도 계산 가능할까요?








만 나이 계산법은 아니?







만 나이는 말 그대로 만(滿), 1년을 꽉 채워야 한 살이 된다는 뜻이죠.








2000년 5월 5일에 태어난 사람은

2001년 5월 5일이 되어야 만으로 한 살인 거죠.









원래 나이에서 만 나이를 구하는 법도 아니?







생일이 안 지났으면 원래 나이-2,

생일이 지나면 원래 나이-1이죠.








그럼 엑셀로 만 나이를 구하기 귀찮겠네요.

IF 함수를 이용해서 생일이 지났는지 안 지났는지 검사한 다음에...





아니다 민호야.

놀랍게도 만 나이를 구하는 함수가

엑셀에 있단다.






정말요?








정확히 말해서 만 나이를 위해 만든

함수는 아니지만 말이다.





바로 DATEDIF 함수란다.







DATEDIF요?









DATEDIF는 두 날짜 사이 경과한 기간을 구하는 함수란다.







경과한 날짜, 경과한 달수, 경과한 년도수를 구할 수 있지.








그럼 경과한 년도수가...








그렇단다. DATEDIF함수로 생년월일과

현재 날짜 사이 경과한 년도수를 구하면, 그게 자동으로 만 나이가 되겠지.







DATEDIF 함수를 쓰는 법을 알려주세요!









물론이다.




=DATEDIF( 생년월일 , 오늘 날짜, "Y")






여기서 "Y"는 연도 수를 계산하라는 정보 형식이란다.




 * 다른 정보형식은 다음과 같습니다.


 "M"은 개월 수 계산

 "D"는 날짜 수 계산

 "MD"는 월과 연도를 무시한 날짜 차이

 (예 : 2001년 8월 1일과 2002년 9월 2일은 "MD"로 1일 차이)

 "YM"는 일과 연도를 무시한 개월 차이

 "YD"는 연도를 무시한 날짜 차이







그럼 할머니,

주민번호를 엑셀에 넣고 만 나이를 알 수 있을까요?












생년월일을 알면 한국식 나이도 만 나이도

위에서 설명한 방법으로 계산할 수 있지.








그러니까, 주민번호로 생년월일만 추출하면 되는 거군요.







그렇단다.

주민번호 앞 여섯 자리가

각각 생년월일의 년도, 월, 일이잖니.







내가 한번 단순한 생년월일 추출 수식을 만들어 봤다.








XX가 셀 주소일 때 : 

=IF( MID(XX, 10, 1)<"3","19", "20") &LEFT(XX, 2)&"-"&MID(XX, 3, 2)&"-"&MID(XX, 5, 2)






아, MID함수는 텍스트를 추출하니까,

두 글자씩 추출해서 생년월일을 만드는군요.









그런데 IF함수는 왜 있죠?







그 사람이 21세기 출생자일 수도 있잖니.

21세기에 태어나면 뒷자리가 3과 4로 시작한단다.



그래서 뒷자리가 3보다 작으면

20세기 출생자라서 년도에 "19"를 붙이고

3 이상이면

21세기 출생자니까 년도에 "20"을 붙이게 했단다.






단순하면서도 좋은 수식이네요.

마이크로소프트가 차라리 나이계산 함수를 만들어 줬으면 좋겠는데...








함수를 직접 만들고 싶니?

후후후...




다음 화에 계속...

반응형
  Comments,     Trackbacks