컴퓨터해보니/오피스(Office)

[엑셀] 날짜 관련 수식 예 - 근무일수, 경과 시간, 경과 일 (두 날짜 사이 계산)

위시랜 2024. 3. 28. 11:07

[엑셀] 날짜 관련 수식 예 - 근무일수, 경과 시간, 경과 일 (두 날짜 사이 계산)
[엑셀] 날짜 관련 수식 예 - 근무일수, 경과 시간, 경과 일 (두 날짜 사이 계산)

날짜와 시간과 관련한 개념과 함수에 대해 아래 포스팅에서 확인했다.

 

 

[엑셀] 날짜와 시간 다루기 - 날짜 및 시간 개념 & 함수

엑셀(Excel)에서 날짜 엑셀에서 날짜는 문자 속성과 동시에 수치적 속성을 모두 가진다. 엑셀의 모든 날짜는 1900년 1월 1일을 기준으로 계산된다. 1900년 1월 1일이 숫자(일련번호) 1이다. 아래 예시

wishlan.tistory.com

위 포스팅에서 날짜 및 시간을 다루는 함수들이 무엇이 있는지 살펴봤는데 날짜 관련한 수식 활용 예시로 '경과 일수'를 확인을 어떻게 할 수 있는지 살펴보자.


경과 일수 구하기

경과 일수라고 표현을 했지만, 특정일에서 특정일까지의 일수와도 같은 이야기이다.

예를 들어, 아래와 같이 입사 일자, 퇴사 일자, 근무일수가 있는 표가 있다.

엑셀(Excel) - 경과 일수(근무 일수) 구하기 예
엑셀(Excel) - 경과 일수(근무 일수) 구하기 예

근무일수를 입력하기 위해 [C2] 셀에 입력된 수식은 다음과 같다.

=DATEDIF(A2, B2, "D")
두 날짜 사이의 일수 계산하기

DATEDIF 함수가 사용되었다.

이 함수는 두 날짜 사이의 일, 월 또는 연도 수를 계산할 때 사용한다.


DATEDIF 함수 구문

DATEDIF 함수 구문은 다음과 같다.

DATEDIF(시작일, 종료일, 단위)
두 날짜 사이의 일, 월 또는 연도 수를 계산

인수로 '시작일'과 '종료일'이 있으며, 

세 번째 인수인 '단위'는 반환하려는 정보 유형을 나타내며, 다음과 같은 종류가 있다.

  • "Y" : 해당 기간에 포함된 전체 연도 수
  • "M" : 해당 기간에 포함된 전체 개월 수
  • "D" : 해당 기간에 포함된 날짜 수
  • "MD" : '시작일'과 '종료일'의 날짜 차이. 두 날짜의 월이나 연도는 무시됨. "MD" 인수에는 여러 가지 오류를 발생할 수 있다고 하므로 사용하지 않는 것을 권장하고 있다.
  • "YM" : '시작일'과 '종료일'의 개월 차이. 두 날짜의 일과 연도는 무시됨.
  • "YD" : '시작일'과 '종료일'의 날짜 차이. 두 날짜의 연도는 무시됨.

앞서 살펴 본 아래와 같은 예시에서 퇴사 일자가 공란이라면 어떻게 될까?

엑셀(Excel) - 경과 일수(근무 일수) 구하기 예
엑셀(Excel) - 경과 일수(근무 일수) 구하기 예

당연히 아래 화면과 같이 #NUM!이라는 오류가 발생한다.

엑셀(Excel) - 경과 일수(근무 일수) 구하기 예
엑셀(Excel) - 경과 일수(근무 일수) 구하기 예

아직 재직 중이라 퇴사 일자가 없는 경우가 있을 수 있는데, 이때에는 현재 날짜를 기준으로 근무일수를 구하는 방법이 있을 수 있다.

 

퇴사 일자가 있는 경우와 없는 경우, 

2가지 경우가 있을 수 있으므로 이런 경우의 수가 발생할 때에는 IF 함수를 생각하자.

 

위 화면에서 오류가 난 [C6] 셀의 수식을 다음과 같이 수정할 수 있다.

=IF(B6="", DATEDIF(A6, TODAY(), "D"), DATEDIF(A6, B6, "D"))
퇴사 일자가 공란일 경우 현재 날짜를 기준으로 구하는 수식

 

아래와 같이 [C6] 셀의 수식을 수정한 결과이다.

엑셀(Excel) - 경과 일수(근무 일수) 구하기 예
엑셀(Excel) - 경과 일수(근무 일수) 구하기 예

DATEDIF 함수를 사용해 근무 일수를 확인해 봤는데, 실무에서 단순히 근무 일수로 확인하는 일은 거의 없을 것이다.

 

보통 O 년 O 개월이라든지, O 년 O 개월 O 일 이런 식으로 재직 기간을 보게 될 텐데, 이때에도 DATEDIF 함수를 활용하면 된다.

 

DATEDIF 함수를 사용하고 세 번째 인수를 다음과 같이할 수 있다.

  • 재직년수 : "Y"  예) =DATEDIF(시작일, 종료일, "Y")
  • 재직월수 : "YM" 예) =DATEDIF(시작일, 종료일, "YM")
  • 재직일수 : "MD" 예) =DATEDIF(시작일, 종료일, "MD")

엑셀(Excel) - 재직 년, 월, 일수
엑셀(Excel) - 재직 년, 월, 일수

그런데, DATEDIF 함수를 사용함에 있어서 주의할 점이 있다.

"MD" 옵션은 음수, 0 또는 부정확한 결과가 발생할 수 있다고 MS에서 사용을 권장하지 않고 있다.  

그래서 YEARFRAC 함수를 사용해 근속연수와 근속 개월을 확인하는 것이 안전하다고 할 수 있다.

 

그리고, 표를 보기 좋고 깔끔하게 하기 위해 TEXT 함수 혹은 CONCATENATE 함수를 사용해 셀에 "O 년 O 개월 O 일"과 같이 표시 되도록 할 수도 있겠다.

 

아래 포스팅의 예도 있으니 참고해 보자.

[엑셀] 날짜 관련 수식 예 - 날짜 합치기, 주말 여부 확인 (DATE, WEEKDAY 함수)

 

[엑셀] 날짜 관련 수식 예 - 날짜 합치기, 주말 여부 확인 (DATE, WEEKDAY 함수)

날짜와 시간과 관련한 개념과 함수에 대해 아래 포스팅에서 확인했다. [엑셀] 날짜와 시간 다루기 - 날짜 및 시간 개념 & 함수 엑셀(Excel)에서 날짜 엑셀에서 날짜는 문자 속성과 동시에 수치적 속

wishlan.tistory.com

 

- 끝 -

 

상기 상품 배너는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.