엑셀 경과년수 계산 - egsel gyeong-gwanyeonsu gyesan

어제 오늘 내일

Tools/Excel

[Excel] 엑셀에서 근속년수 계산하기 (DATEDIF 함수)

hi.anna 2016. 10. 27. 06:22

이번에는 엑셀을 이용하여 경과년수, 경과월수, 경과일수를 계산하는 방법을 알아보도록 하겠다.

경과년수, 월수, 일수를 계산하는 대표적인 예제로

입사일자와 퇴사일자를 입력받아 근속년수를 계산해 보도록 하겠다. 

엑셀 경과년수 계산 - egsel gyeong-gwanyeonsu gyesan

엑셀에서 날짜간의 경과년수, 경과월수, 경과일수를 계산하기 위해서는 

DATEDIF함수를 사용해야 한다.

DATEDIF(start_date, end_date, unit)

두 날짜사이의 경과년수, 경과월수, 경과일수를 계산한다.

start_date : 시작일자

end_date : 종료일자

unit : 계산할 결과값의 형식

## unit에 들어갈 값

1. "Y"

시작일과 종료일 사이의 전체 경과년수를 계산한다.

2. "M"

시작일과 종료일 사이의 전체 경과월수를 계산한다.

3. "D"

시작일과 종료일 사이의 전체 경과일수를 계산한다.

4. "MD"

시작일과 종료일 사이의 경과 일수를 계산한다. 

(이때, 두 날짜의 연도나 월은 무시된다.)

ex) DATEDIF("2016-01-01", "2018-03-02", "MD") = 1

5. "YM"

시작일과 종료일 사이의 경과 월수를 계산한다. 

(이때, 두 날짜의 연도나 일은 무시된다.)

ex) DATEDIF("2016-01-01", "2018-03-02", "YM") = 2

6. "YD"

시작일과 종료일 사이의 경과 일수를 계산한다. 

(이때, 두 날짜의 연도는 무시된다.)

ex) DATEDIF("2016-01-01", "2018-03-02", "YD") = 61

이제 위 함수를 이용해서, 근속년수를 계산해 보도록 하자.

1. 아래와 같은 입사일자와 퇴사일자를 기준으로 

전체 근속년수, 전체 근속개월수, 전체 근속일수를 계산하고,

'X년 X개월 X일'로 표현되는 근속기간을 계산해 보도록 하겠다.

2. 전체 근속년수, 전체 근속개월수, 전체 근속일수 계산은 아래 수식을 사용하였다.

전체 근속년수 = DATEDIF(입사일자, 퇴사일자, "Y")

전체 근속개월수 = DATEDIF(입사일자, 퇴사일자, "M")

전체 근속일수 = DATEDIF(입사일자, 퇴사일자, "D")

전체 근속일수를 눈여겨보면, 

일수 계산에 윤년, 윤달이 반영된 것을 볼 수 있다.

2016년 2월은 4년에 한번씩 돌아오는 윤년, 윤달이 있는 해로, 

2016년 2월은 29일까지 존재하여, 

2016년 한해는 366일이다.

DATEDIF함수는 이 윤년, 윤달 정보까지 반영하여 계산된다는 것을 알 수 있다.

3. 이번에는 2016년 1월 1일~2017년 1월 2일까지 기간이 

총 '몇년 몇개월 몇일'인지 계산하기 위해 아래 수식을 사용하였다.

근속년수 = DATEDIF(입사일자, 퇴사일자, "Y")

근속개월수 = DATEDIF(입사일자, 퇴사일자, "YM")

근속일수 = DATEDIF(입사일자, 퇴사일자, "MD")

위 결과값을 이용하면

2016년 1월 1일~2017년 1월 2일까지의 경과기간은 '1년 0개월 1일'임을 알 수 있다.

여러가지 방법으로 날짜간의 경과기간을 계산하는 방법을 알아보았다.

안녕하세요.

행아아빠입니다.

이번 #엑셀 내용으로는

입사일로부터 현재까지 근무일수 또는 경과일, 경과월, 경과년도를 계산 하는 수식을 작성해 보려고 합니다.

근무일수나 현재일자를 기준 또는 특정날짜를 기준으로 경과일을 계산하는 수식에는 #DATEDIF함수를 사용해서 작성 할 수 있겠습니다.

또한 근무일수 뿐만 아니라 태어난 날짜를 기준으로 날짜를 "00년 00월 00일"로 나이를 계산할 수도 있겠지요~~

■ 조건이 있는 날짜 기간의 합계를 계산하는 수식 작성 방법.

    https://hang-a-fafa.tistory.com/50


■ 엑셀 DATEDIF 함수로 근무일수 계산하는 방법.

수식을 작성하기 위해 간단하게 자료를 입력해 보았습니다.

    빨간 네모박스안에 근무일수와 00년 00개월 00일로 표기 되도록 수식을 작성해 보겠습니다.

    DATEDIF 함수의 수식 구문은

    =DATEDIF(기준일, 최종일, "Y")로 간단하게 작성 할 수 있습니다.

    여기서 Y는 연도를 표기하라는 의미이고, M(월) 또는 D(일)로 변경하여 원하는 표기 방법으로 바꿔서 사용해 주시면 됩니다.

    또는 YM(개월), MD(일)등으로 표기할 수 있는 방법도 있겠습니다.

엑셀 경과년수 계산 - egsel gyeong-gwanyeonsu gyesan

우선 E열의 근무일수를 계산하는 수식을 작성해 보면,

    =DATEDIF(C2,D2,"D")이렇게 작성을 했을때 퇴사일이 공란일 경우에는 수식의 결과값이 에러값으로 반영되는 것을 볼 수 있는데,

    퇴사일이 공란으로, 비교할 값이 없기 때문에 오류값으로 반환되는것은 당연한 것입니다.

    그러면, 퇴사일이 공란일때는 아직 근무중이기 때문에 현재 날짜를 기준으로 근무일수를 계산해야하고,

    퇴사일이 있다면, 입사일부터 퇴사일까지의 근무일을 계산해 주면 되는 것이겠지요~

▲ 퇴사일이 공란이라면  =IF(D2="",현재 날짜를 기준으로 입사일부터 현재날짜까지의 근무일수를 계산 DATEDIF(C2,TODAY(),"D"),

    그렇지 않고 퇴사일이 존재한다면 입사일부터 퇴사일까지의 근무일수를 계산 DATEDIF(C2,D2,"D"))

    이렇게 작성해야 오류값이 없는 수식이 완성 되는 것 입니다.

    =IF(D2="",DATEDIF(C2,TODAY(),"D"),DATEDIF(C2,D2,"D"))


F열의 근무경과년월일의 표기 방법을 

    "00년 00개월 00일"로 표기하는 수식.

▲ F열에 작성된 수식의 결과값은

    "00년 00개월 00일"로 표기 됩니다.

    수식은 복잡하게 뭔가 많이 작성되어 있는것 같지만,

    근무일수를 작성한 수식에다가 약간의 살을 붙여주어 연결해 주었다고 생각하고 보시면,

    그리 어렵게 작성된 수식은 아님을 알 수 있을 거예요!!

    =IF(D2="",DATEDIF(C2,TODAY(),"Y")&"년"&DATEDIF(C2,TODAY(),"YM")&"개월"&DATEDIF(C2,TODAY(),"MD")&"일",

    DATEDIF(C2,D2,"Y")&"년"&DATEDIF(C2,D2,"YM")&"개월"&DATEDIF(C2,D2,"MD")&"일")

    DATEDIF 함수의 기본형식에 텍스트를 표기 하기 위해서 &"텍스트"&로 연결해준 형태와

    연도는 "Y"로, 개월은 "YM", 일수는 "MD"로 표기하였습니다.

    일자를 기준으로 경과된 년, 월, 일을 계산하는 함수 DATEDIF 어렵지 않죠~~??

    또한 DATEDIF 함수를 이용해서 입사일 대신에 생년월일을 입력하면 나이 계산도 어렵지 않게 계산 할 수 있으니 참고 하시기 바랍니다~


그럼 오늘 내용도 많은 분들께 도움되시길 바라며,

기분 좋은 하루 보내시길 바라겠습니다^^!!