안녕하세요?
날짜 계산은 꽤 까다로운 주제입니다. 퇴직 예정일자도 마찬가지로, 퇴직 규정에 따라 그 계산법이 달라질 수밖에 없습니다.(이 게시물도, 약간의 착오가 있어서 수정했습니다^^;;)
오늘은, 게시판에 올라온 질문의 예를 참고로, 퇴직 예정일자를 구하는 하나의 경우를 보도록 하겠습니다.
퇴직 예정일자에 관한 함수를 만들어주세요..
만 65세의 생년월일이 3월1일부터 익년 8월31일까지는 9월1일자
9월1일부터 익년 2월 28일까지는 2월 1일자 정년퇴임하는것으로 합니다.
이란 질문이십니다.
이 질문의 핵심은 출생월에 있습니다. 즉 정년이 65세라고 해도, 1월부터 2월생은 65세가 된 2월 1일(즉, 66세), 3월부터 8월생은 그해 9월 1일, 9월 이후 출생자는 다음해(즉 66세) 2월 1일에 퇴직하는 것입니다
이 경우는 아래와 같은 수식을 이용해 구할 수 있습니다.
=DATE(YEAR(A1)+VLOOKUP(MONTH(A1),{1,65;9,66},2),VLOOKUP(MONTH(A1),{1,2;3,9;9,2},2),1)
보듯이, 이 함수는 Date 함수를 이용해 날짜를 계산합니다. 퇴직할 해를 계산하는 것은, A1셀에 날짜가 있다면, 이 날짜에, 65를 더하거나 66을 더해 주면 됩니다. 66을 더해주는 경우는 이미 말씀드렸듯, 출생월이 9월 이후일 경우입니다. 그것을 구하기 위해 간단히 Vlookup 함수를 이용한 것입니다.
VLOOKUP(MONTH(A1),{1,65;9,66},2)
란, a1 셀의 month(출생월)을 구해 그것이 1월부터 8월은65, 9월 이후는 66을 더해주도록 한 것입니다.
퇴직월의 계산도 마찬가지 요령입니다.
VLOOKUP(MONTH(A1),{1,2;3,9;9,2},2)
은, 1월 2월은 2월에, 1월부터 8월은 9월에, 9월 이후는 2월에 퇴직하게 되는 것을 구한 것입니다.
if 함수를 이용하거나, 다른 함수를 이용해 이부분을 처리할 수도 있을 것입니다. if 함수를 이용하면 아래와 같이 될 것입니다.
=DATE(YEAR(A1)+IF(MONTH(A1)<=8,65,66),IF(MONTH(A1)<=2,2,IF(MONTH(A1)<=8,9,2)),1)
이 수식은 조금 더 줄이면, 아래와 같이 구하실 수 있습니다.
=DATE(YEAR(A1)+65, VLOOKUP(MONTH(A1),{1,2;3,9;9,14},2 ),1)
=DATE(YEAR(A1)+65, IF(MONTH(A1)<=2,2,IF(MONTH(A1)<=8,9,14)),1)
출생월이 1월부터 2월인 경우는 2월에, 3월부터 8월은 9월에, 그렇지 않은 경우는 14월(다음해 2월)에 퇴직하는 것이므로...
그런데, 질문하신 분은 예는 2021년 2월 1일이고, 제가 구한 결과는 2023년 2월 1일입니다. 왜 2년이나 차이가 있을까요? 저로선 잘 알 수 없는 일입니다만, 정년과 같이 매우 민감한 계산이 틀린다면 매우 곤란할 것입니다.
그럼...행운이 있으시길...!
날짜 계산은 꽤 까다로운 주제입니다. 퇴직 예정일자도 마찬가지로, 퇴직 규정에 따라 그 계산법이 달라질 수밖에 없습니다.(이 게시물도, 약간의 착오가 있어서 수정했습니다^^;;)
오늘은, 게시판에 올라온 질문의 예를 참고로, 퇴직 예정일자를 구하는 하나의 경우를 보도록 하겠습니다.
퇴직 예정일자에 관한 함수를 만들어주세요..
만 65세의 생년월일이 3월1일부터 익년 8월31일까지는 9월1일자
9월1일부터 익년 2월 28일까지는 2월 1일자 정년퇴임하는것으로 합니다.
| 생년월일 | 퇴직 예정일 |
| 1957년 11월 25일 | 2021년 2월 1일 |
| 1966년 3월 25일 | 2030년 9월 1일 |
이란 질문이십니다.
이 질문의 핵심은 출생월에 있습니다. 즉 정년이 65세라고 해도, 1월부터 2월생은 65세가 된 2월 1일(즉, 66세), 3월부터 8월생은 그해 9월 1일, 9월 이후 출생자는 다음해(즉 66세) 2월 1일에 퇴직하는 것입니다
| 1957-11-25 | 2023-02-01 | =DATE(YEAR(A1)+VLOOKUP(MONTH(A1),{1,65;9,66},2),VLOOKUP(MONTH(A1),{1,2;3,9;9,2},2),1) |
| 1966-03-25 | 2031-09-01 |
이 경우는 아래와 같은 수식을 이용해 구할 수 있습니다.
=DATE(YEAR(A1)+VLOOKUP(MONTH(A1),{1,65;9,66},2),VLOOKUP(MONTH(A1),{1,2;3,9;9,2},2),1)
보듯이, 이 함수는 Date 함수를 이용해 날짜를 계산합니다. 퇴직할 해를 계산하는 것은, A1셀에 날짜가 있다면, 이 날짜에, 65를 더하거나 66을 더해 주면 됩니다. 66을 더해주는 경우는 이미 말씀드렸듯, 출생월이 9월 이후일 경우입니다. 그것을 구하기 위해 간단히 Vlookup 함수를 이용한 것입니다.
VLOOKUP(MONTH(A1),{1,65;9,66},2)
란, a1 셀의 month(출생월)을 구해 그것이 1월부터 8월은65, 9월 이후는 66을 더해주도록 한 것입니다.
퇴직월의 계산도 마찬가지 요령입니다.
VLOOKUP(MONTH(A1),{1,2;3,9;9,2},2)
은, 1월 2월은 2월에, 1월부터 8월은 9월에, 9월 이후는 2월에 퇴직하게 되는 것을 구한 것입니다.
if 함수를 이용하거나, 다른 함수를 이용해 이부분을 처리할 수도 있을 것입니다. if 함수를 이용하면 아래와 같이 될 것입니다.
=DATE(YEAR(A1)+IF(MONTH(A1)<=8,65,66),IF(MONTH(A1)<=2,2,IF(MONTH(A1)<=8,9,2)),1)
이 수식은 조금 더 줄이면, 아래와 같이 구하실 수 있습니다.
=DATE(YEAR(A1)+65, VLOOKUP(MONTH(A1),{1,2;3,9;9,14},2 ),1)
=DATE(YEAR(A1)+65, IF(MONTH(A1)<=2,2,IF(MONTH(A1)<=8,9,14)),1)
출생월이 1월부터 2월인 경우는 2월에, 3월부터 8월은 9월에, 그렇지 않은 경우는 14월(다음해 2월)에 퇴직하는 것이므로...
그런데, 질문하신 분은 예는 2021년 2월 1일이고, 제가 구한 결과는 2023년 2월 1일입니다. 왜 2년이나 차이가 있을까요? 저로선 잘 알 수 없는 일입니다만, 정년과 같이 매우 민감한 계산이 틀린다면 매우 곤란할 것입니다.
그럼...행운이 있으시길...!
다음검색