입사일부터 오늘까지 근속연수가 몇 년 몇 개월인지, 주말 빼고 영업일로 며칠 뒤가 납기일인지 계산하다 보면 달력을 손가락으로 세고 있는 자신을 발견하게 되죠. 이럴 때 함수 몇 개만 알아 두면 일이 정말 쉬워져요. 오늘은 실무에서 제일 많이 쓰는 엑셀 날짜 계산 함수 DATEDIF, WORKDAY, NETWORKDAYS를 바로 쓸 수 있는 공식과 함께 정리해 볼게요.
📅 DATEDIF로 근속연수·나이·기간 한 번에 구하기
DATEDIF는 두 날짜 사이의 기간을 연, 월, 일 단위로 알려 주는 엑셀 날짜 계산 함수예요. 숨은 함수라서 자동 완성 목록에는 안 뜨지만, 철자만 정확히 입력하면 잘 작동해요. 기본 형식은 =DATEDIF(시작일, 종료일, “단위”)이고, 시작일이 종료일보다 늦으면 #NUM! 오류가 나니까 순서만 꼭 지켜 주세요. 단위 옵션은 아래 표처럼 여섯 가지가 있어요.
| 단위 | 의미 | 활용 예 |
|---|---|---|
| “Y” | 만 연수 | 근속연수, 만 나이 |
| “M” | 총 개월 수 | 계약 경과 개월 |
| “D” | 총 일수 | D-day 경과일 |
| “YM” | 연을 뺀 나머지 개월 | 몇 년 몇 개월 표시 |
| “MD” | 월을 뺀 나머지 일수 | 몇 개월 며칠 표시 |
| “YD” | 연을 뺀 나머지 일수 | 생일까지 남은 일수 |
예를 들어 A2에 입사일이 있다면 =DATEDIF(A2,TODAY(),”Y”)&”년 “&DATEDIF(A2,TODAY(),”YM”)&”개월”처럼 이어 붙여서 ‘3년 7개월’ 같은 표시를 한 번에 만들 수 있어요. 다만 “MD” 옵션은 월말 날짜가 끼면 결과가 어긋나는 경우가 있어서, 정산처럼 정밀한 작업이라면 결과를 한 번 더 확인해 주세요.
🗓️ WORKDAY로 주말·공휴일 빼고 납기일 계산하기
“영업일 기준 5일 이내 처리”처럼 업무 기한이 영업일로 정해져 있을 때 쓰는 엑셀 날짜 계산 함수가 바로 WORKDAY예요. 형식은 =WORKDAY(시작일, 일수, [공휴일])이고, 시작일로부터 토요일과 일요일을 건너뛰면서 지정한 영업일 수만큼 지난 날짜를 돌려줘요. 시작일 당일은 세지 않는다는 점이 포인트예요. 금요일에 =WORKDAY(A2,3)을 넣으면 다음 주 수요일이 나와요. 결과가 45678 같은 숫자로 보인다면 오류가 아니라 날짜 일련번호라서 셀 서식을 날짜로 바꿔 주기만 하면 돼요.
공휴일까지 빼고 싶다면 별도 시트에 그해 공휴일과 대체공휴일 목록을 날짜 형식으로 정리해 두고 세 번째 인수에 그 범위를 넣으면 돼요. =WORKDAY(A2,10,공휴일!$A$2:$A$20)처럼 절대참조로 걸면 수식을 복사해도 범위가 밀리지 않아요. 반대로 일수에 음수를 넣으면 거꾸로 계산돼서, 행사일 기준으로 영업일 7일 전 준비 마감일을 구할 때도 유용해요. 주말이 다른 해외 거래처라면 WORKDAY.INTL로 주말 유형을 지정하면 되니, 이 엑셀 날짜 계산 함수 하나로 대부분의 납기일 계산이 해결돼요.
📊 NETWORKDAYS로 두 날짜 사이 영업일 수 세기
WORKDAY가 며칠 뒤 날짜를 구하는 함수라면, NETWORKDAYS는 두 날짜 사이에 영업일이 며칠 있는지를 세는 함수예요. 형식은 =NETWORKDAYS(시작일, 종료일, [공휴일])로 거의 비슷하지만, 결정적인 차이가 하나 있어요. NETWORKDAYS는 시작일과 종료일을 모두 포함해서 센다는 거예요. 그래서 월요일부터 금요일까지 넣으면 4가 아니라 5가 나와요. 프로젝트 투입 일수나 일할 계산처럼 첫날과 마지막 날이 모두 근무일로 잡혀야 하는 상황에 딱 맞는 엑셀 날짜 계산 함수인 셈이죠.
실무에서 자주 쓰는 패턴을 몇 가지 들어 볼게요. 이번 달 영업일 수는 =NETWORKDAYS(EOMONTH(TODAY(),-1)+1,EOMONTH(TODAY(),0),공휴일범위)로 구할 수 있어요. EOMONTH가 이번 달 1일과 말일을 자동으로 잡아 줘서 매달 수식을 고칠 필요가 없어요. 수습 기간 근무일이나 아르바이트 근무일 계산에도 그대로 응용할 수 있어요. 토요일만 쉬는 사업장이라면 NETWORKDAYS.INTL로 주말 유형을 바꿔 주면 되고요.
⏰ 시간 계산과 자주 나는 오류 체크리스트
엑셀은 날짜를 정수, 시간을 소수로 저장해요. 하루가 1이니까 1시간은 1/24인 셈이죠. 이 원리를 알면 엑셀 날짜 계산 함수와 시간 계산이 자연스럽게 연결돼요. 출근 시각과 퇴근 시각을 빼면 근무 시간이 나오고, 여기에 24를 곱하면 8.5처럼 시간 단위 숫자로 바뀌어서 시급 계산에 바로 쓸 수 있어요. 야간 근무처럼 자정을 넘기면 결과가 음수가 되는데, 이때는 =MOD(퇴근-출근,1)을 쓰면 깔끔하게 해결돼요. 막힐 때는 아래 항목부터 점검해 보세요.
- #VALUE! 오류: 날짜가 텍스트로 입력된 경우가 대부분이에요. 점 대신 하이픈 형식으로 입력하거나 DATEVALUE로 변환해 주세요.
- #NUM! 오류: DATEDIF에서 시작일이 종료일보다 늦을 때 나요. 두 인수의 순서를 확인해 보세요.
- 합계 시간이 24시간을 넘으면 리셋되는 문제: 셀 서식을 [h]:mm으로 바꾸면 누적 시간이 그대로 표시돼요.
- 공휴일이 반영되지 않는 문제: 공휴일 목록이 텍스트로 저장돼 있지 않은지, 절대참조로 고정했는지 확인해 주세요.