인사 업무 혹은 인원 관리 업무를 하다보면 자주 다루게 되는 것이 바로 직원들이 얼마나 오래 회사를 다니고 있는지 계산하는 것이다. 이러한 것들을 자주 다루게 되는 이유는 다양하다. 인사 관리 차원에서 직원들의 평균 근속년수가 얼마나 되는지는 주기적으로 체크를 해야된다. 혹은 일정 근속년수가 넘어간 직원들에게는 포상이나 상여를 주는 경우에도 필요하다. 게다가 근무 1년이 넘은 직원이 생기면 퇴직연금에 가입시켜야 되고, 만약 퇴직연금제도를 가입하지 않은 사업장이라면 퇴사시 기간이 얼마나 되는지 계산한 뒤에 퇴직금도 산정해야 된다. 이 외에도 그때 그때 다양한 목적으로 각종 조건별 인원에 대해 기간을 계산하게 된다.
물론 따로 ERP를 쓰고 있으면 프로그램 내에서 다 계산이 되긴한다. 하지만 이러한 시스템을 사용하지 않는 경우에는 엑셀에 직원별 재직기간을 계산해놓고 필요할 때마다 최신화된 기간으로 확인할 수 있게끔 만들어 놓는게 필요하다. 만약 직원이 재직증명서를 발급해달라고 요청한 경우, 증명서 안에 기간이 얼마나 되는지를 기입해야된다. 이 경우에 매번 입사일, 현재날짜 따져서 계산하기는 너무 번거롭다. 그리고 시스템이 갖추어져 있다고 하더라도 원하는 대로 필요한 정보를 가공해서 사용하려면 결국 엑셀을 통해 추가로 관리를 해놓는 것이 좋을 때도 있다.
나도 ERP에서 전사 정보가 저장되고 조회가 가능한데도 불구하고 엑셀을 통해서 많은 것들을 관리하는 편이다. 아무래도 시스템을 사용하면 메뉴에 메뉴를 타고 들어가서 조회를 해야되고, 또 정보가 많아지면 속도도 빠른 편은 아니라 업무 처리에 시간이 오래걸린다. 그에 반해 엑셀은 많은 데이터도 빠르게 다룰 수 있고, 원하는대로 가공해서 업무에 사용하기 편하다. 그리고 재직기간을 계산하는 것 역시 아주 쉽게 가능하기 때문에 더더욱 업무 시간을 많이 줄일 수 있다.
DATEDIF
앞서 얘기한 업무들을 할 때에는 DATEDIF 라는 함수를 사용한다.
DATEDIF
1. 형태: DATEDIF(시작 날짜,종료날짜,"출력형식")
2. 사용 예시: =DATEDIF(A1,B1,"y")
3. 출력 형식 종류
입력문자 설명 주의사항 y 시작 날짜와 종료 날짜 사이의 '연' 차이가 나온다 m 시작 날짜와 종료 날짜 사이의 '월' 차이가 나온다 1일 ~ 31일로 계산을 하면 0개월로 계산됨 d 시작 날짜와 종료 날짜 사이의 '일' 차이가 나온다 1일 ~ 3일로 계산을 하면 2일로 계산됨 ym 연과 일을 무시하고 '개월' 차이만 나온다 md 연과 월은 무시하고 '일' 차이만 나온다 yd 연은 무시하고 '일' 차이만 나온다
구조는 아주 단순하다. 함수를 적어주고, 첫번째 자리에는 시작 날짜 혹은 시작 날짜가 입력된 셀, 두번째 자리에는 종료 날짜 혹은 종료 날짜가 입력된 셀, 그리고 세번째 자리에는 어떤 형식의 값을 나오게 할지를 넣어주면 된다.
엑셀에서 사용하기
입사일, 퇴사일을 적고 옆에 재직기간을 적는 식으로 양식을 만들었다.
이 경우 위와 같이 =DATEDIF(B3,C3,"y")로 입력했다.
입사일이 22년 1월 1일이고, 퇴사일이 23년 3월 31일 일때 "y" 즉, 재직 년수는 얼마인지를 구하는 식이다.
이 경우 1이 나온다. 년수만 구했기 때문에 1이 나온 것이다.
입력한 수식 =DATEDIF(B3,C3,"y") 뒤에 & 를 입력해서 다른 것을 연결시켜주고 그 뒤에 "년" 이라고 입력을 해주면 위와 같이 1년으로 나온다.
= 을 쓰게되면 수식을 입력하겠다는 일종의 명령어인데, 여기세 =을 쓰고 텍스트를 바로 쓰면 오류가 생긴다. 텍스트를 쓰기 위해서는 ""를 쓰고 이 안에 텍스트를 넣어야 텍스트 형식으로 인식을 한다. 그리고 수식간 연결은 &를 사용한다.
이번엔 세번째 인자에 "y"가 아닌 "ym"을 적었다.
"ym"은 연도를 무시하고 '월'이 나오게 하는 것인데, 2가 나왔다. 만약 입사일이 1월 1일, 퇴사일이 3월 10일쯤 됐다면 재직월수는 2개월이니 2가 맞겠지만, 3월 31일이라면 사실 3개월로 보는 경우가 많을 것이다.(회사별 세부 상황에 따라 다른 경우가 있을지는 모르겠다.)
이부분이 어디에서 문제가 되냐면, 퇴직금 기준인 1년이 되는가를 따질 때 오류가 생길 수 있다. 만약 위 방식으로 1월 1일부터 12월 31일까지의 개월 수를 구하면 11이 나온다. 따라서 퇴사일 혹은 계산하려는 종료일이 말일 일때는 상황에 따라 체크해서 보정을 해주도록 한다.
같은 방식으로 세번째에 "md"를 넣으면 연월을 무시한 '일'자만 나온다. 일자를 구하는 경우에는 종료일은 포함하지 않는 것으로 계산이 되기 때문에 이 역시 상황에 따라 보정 해줘야 된다.
그리고 위에서 나온 년월일을 모두 묶으면 위처럼 함수식이 나온다.
=DATEDIF(시작일,종료일,"y")&"년 "&DATEDIF(시작일,종료일,"ym")&"개월 "&DATEDIF(시작일,종료일,"md")&"일 "
추가로 종료일을 현재날짜로 하려면 종료일 대신 TODAY() 를 넣어주면 된다.
주의사항
1. 엑셀 함수마법사에 내장된 것이 아니라서 수식작성기에는 나오지 않는다. 위 사진에서 수식 작성기(맥 엑셀버전 사용중)에 이름을 검색해도 나오지 않는다. 따라서 외워놓았다가, 혹은 이런것들이 있다는 것을 숙지해뒀다가 사용할 때마다 직접 입력해야 된다.
2. 수식에서 세번째 란에 큰 따옴표 ""를 꼭 써야된다. 예를 들어 연도차이를 나타낼 때는 y 로 적는것이 아닌 "y"를 넣어줘야 된다.
3. 1일에서 말일까지의 기간을 계산할 때 "m" 과 "d" 는 한 달 혹은 하루가 빠진다. 예를 들어 1월 1일 입사 1월 3일 퇴사에서 일자를 계산할 경우 2로 나온다. 하지만 개념상으로 1일 입사해서 3일 퇴사인 경우 근무는 총 3일을 한 것이다. 개월을 계산할 때에도 1월 1일 입사 2월 28일 퇴사인 경우, 2(개월)로 나오는 것이 아닌 1(개월)로 나온다. 따라서 말일자인 경우는 이러한 것들을 보정해줘야 된다.
'슬기로운 생활 > 엑셀' 카테고리의 다른 글
[EXCEL] 엑셀에서 일부분 가리거나 삭제 방법 (주민번호, 개인정보 가리기) (1) | 2024.05.03 |
---|---|
[EXCEL] 가장 앞자리 숫자 0 나오게 하는 방법 (0) | 2023.07.26 |
[EXCEL] 엑셀 자동으로 행이 길어지는 현상 해결하기 (엑셀 자동 줄 바꿈) (0) | 2023.06.27 |
[EXCEL] 엑셀 앞글자 마지막글자 삭제 원하는 만큼 한번에 지우기 (0) | 2023.06.13 |
[EXCEL] 엑셀 눈금선 표시 없애기 (흰 배경 만들기) (0) | 2023.06.12 |