엑셀 입사일 계산 - egsel ibsail gyesan

Software 사용 꿀팁/EXCEL 2007~2019, 365

2020. 8. 30.

이번시간에는 엑셀에서 두 날짜 사이를 계산하는 방법을 알아본다. 엑셀로 업무나 과제를 하다보면 두 날짜간의 차이를 구해야하는 일이 종종 있다. 예를 들어 회사에서의 근무일수, 근무년수, 근무기간, 만나이, D-DAY, 연애기간, 결혼생활등 과거의 시작날짜와 오늘날짜의 차이를 구해야하는 경우가 있다. 예를 들어, 근무연수는 몇년 몇개월 몇일로 표시될 수 있다.

엑셀 입사일 계산 - egsel ibsail gyesan

* 혹시 EXCEL 날짜 관련, 다른 꿀팁이 필요하다면 아래 포스팅도 참고해보시라.

▶ EXCEL 날짜에서 요일 추출 (요일 형식 변환 : ex. 월 / 월요일 / mon / monday)

▶ EXCEL 날짜에서 년월일 글자 표시, 년월일 한자 표시, 요일 표시

▶ EXCEL 날짜를 드래그해서 평일만 나오게 하는 방법 (채우기핸들)

▶ EXCEL 날짜에 "-" 표시 추가하기 (ex. 20200829 -> 2020-08-29 로)

▶ EXCEL 날짜 시간 더하기, 빼기 계산 방법

본론으로 와서 바로 결과 화면을 보도록 하자.

엑셀 입사일 계산 - egsel ibsail gyesan

아마 위와 같은 결과화면을 원하셨을 것이다.

예를 들어, 2015-08-30일에 입사했을때의 총 근무기간을 년, 총 개월수, 총 일수로 표시하거나

년 + 개월 + 일로 표시해야하는 상황일 것이다.

이러한 상황을 날짜 관련 함수로 간단히 구분할 수 있는데, 엄청 간단하지는 않지만 그리 어렵지도 않다.

일단 이 두 날짜 차이를 계산하는 함수는 DATEDIF()가 되겠다.

하지만 함수 라이브러리에는 없기 때문에, 엑셀에서 입력할때 자동완성으로 뜨지 않으니

그냥 쭉 입력해서 명령을 내리면 된다.

먼저 DATEDIF()의 함수형식과 인수를 알아보고 예제로 설명해보겠다.

1) 함수형식

=DATEDIF(start_date, end_date, return_type)

=DATEDIF(시작날짜, 종료 날짜, 기간 종류)

2) 인수

- 시작 날짜, 종료 날짜는 말 그대로다

- return_type

1) "Y" : 두 날짜 사이에 경과한 총 연수

2) "M" : 두 날짜 사이에 경과한 총 월수

3) "D" : 두 날짜 사이에 경과한 총 일수

4) "YM" : 경과한 연도까지 뺀 나머지 경과 개월수

5) "YD" : 경과한 연도까지 뺀 나머지 경과 일 수

6) "MD" : 경과한 개월까지 뺀 나머지 경과 일 수

실제 사용된 함수를 보도록 하자.

=DATEDIF(D5,TODAY(),"Y")&"년"

- D5 : 입사일

- TODAY() : 오늘 날짜 (2020-08-30)

- "Y" : 입사일 - 오늘 날짜의 총 연수

- & : "년"이라는 글자와 합치기 위한 기호

엑셀 입사일 계산 - egsel ibsail gyesan

위까지 이해하셨다면, 이제 Y, M, D 관련 함수만 이해하시면 된다.

함수 인자로 들어가는 Y, M, D는 말그대로 두 날짜간의 총 기간이다.

엑셀 입사일 계산 - egsel ibsail gyesan

하지만 12개월은 1년 단위로, 31일은 1달로, 365일은 1년으로 환산될 수 있기 때문에

직관적으로 이해하기가 쉽지 않다.

따라서 총 년수, 총 개월, 총일수는 환산되지 않는 년, 개월, 일로 구분하는 것이 훨씬 보기 좋다.

이때는 4~6번의 YM, YD, MD를 인수로 사용해야 한다.

하지만 DATEDIF 함수를 2~3개정도를 묶어 사용해야 한다.

- YM은 년도를 무시하고 개월만 계산 (최대 11개월까지 표시)

- YD는 년도를 무시하고 일수만 계산 (최대 364일까지 표시)

- YM은 년도, 개월까지 무시하고 일수만 계산 (최대 28~31일까지 표시)

굳이 외우실 필요는 없다.

아래 예제를 보고, 적절히 활용하시면 된다.

엑셀 입사일 계산 - egsel ibsail gyesan

실제 사용된 함수는 아래와 같으니, 참고해보시기 바란다.

(함수를 서로 합치는 기호는 &, 띄어쓰기는 " "가 사용됐음)

* 아 참고로 필자는 현직 엔지니어로, 10년 이상의 PC 노하우를 블로그, 유튜브로 올리고 있다.

PC 관련 문의를 100% 무료로 도와드리니까, 아래 SNS를 활용해보시기 바란다.

▶ PC 고장 문의 게시판

▶ PC 꿀팁 카페 (네이버)

▶ 유튜브 <PC 꿀팁 받기>

▶ 유튜브 <컴맹 탈출 강좌>

1) 엑셀 ~년 ~개월 함수

엑셀 입사일 계산 - egsel ibsail gyesan

2) 엑셀 ~년 ~일 함수

엑셀 입사일 계산 - egsel ibsail gyesan

3) 엑셀 ~년 ~개월 ~일 함수

엑셀 입사일 계산 - egsel ibsail gyesan

DATEDIF 함수를 이용하면 날짜 간격을 알수 있습니다. 이번 예제는 입사일과 퇴사일을 비교해서 몇 개월이나 근무했는지 알아보는 것입니다. 그런데 퇴사하지 않고 현재 근무인 사람까지 일괄적으로 구하려면 어떻게 해야 할까요? MIN 함수를 이용해서 현재 날짜를 적용하는 방법까지 알려 드리겠습니다.

DATEDIF 함수를 이용하면 두 날짜 사이의 간격을 구할 수 있습니다. 세 번째 인수로 입력하는 반환할 정보의 형식을 정해 줍니다. “M” 은 개월 수를 구할 수 있는 형식입니다. 샘플에서 퇴사일이 없는 현재 근무중인 사람까지 일괄적으로 구하려면 어떻게 해야 할까요?

DATEDIF 함수의 두 번째 인수에 퇴사일이 없는 사람은 현재 날짜로 채우면 됩니다. 방법은 MIN 함수를 사용하는 것입니다. MIN 은 입력한 값에서 최소값을 반환합니다. MIN 에 퇴사일 값과 현재 날짜를 구하는 함수인 TODAY() 함수를 입력하면 날짜가 있는 경우 퇴사일이, “근무중텍스트가 들어간 셀이라면 TODAY() 가 반환됩니다. 왜냐하면 Text 보다 큰 날짜값은 없기 때문입니다. 그런데 MIN() 함수를 이용해서 날짜를 구했더니 날짜가 아닌 숫자가 나왔습니다. 셀 표시 형식을 날짜로 바꿔야 합니다.  

엑셀 입사일 계산 - egsel ibsail gyesan

셀 표시 형식을 날짜로 변경하면 MIN 결과값을 제대로 볼 수 있습니다. 퇴사일이 근무중으로 되어 있는 MIN 의 반환값은 현재 날짜로 나타났습니다.

MIN DATEDIF 함수를 한번에 사용하면 현재까지 근무하고 있는 사람들까지 근속개월수를 계산할 수 있습니다.

=DATEDIF(C3, MIN(D3, TODAY()), "M")

▼ 근속개월수가 12 이상이면 년도와 함께 표현하는 것이 가독성을 높일 수 있습니다. 년도와 월을 구하는 수식은 다음과 같습니다. DATEDIF 함수의 마지막 인수에 반환형식이 Y, YM 으로 지정합니다.

=DATEDIF(C3, MIN(D3, TODAY()), "Y") & "" & DATEDIF(C3, MIN(D3, TODAY()), "YM") & ""

1년이 안넘어간 0년을 없애기 위해 IF 함수를 사용했습니다. DATEDIF 의 결과값이 0 이면 공백을 표시하는 것입니다

=IF(DATEDIF(C3, MIN(D3, TODAY()), "Y")=0,"", DATEDIF(C3, MIN(D3, TODAY()), "Y") & "") & DATEDIF(C3, MIN(D3, TODAY()), "YM") & ""