📅 엑셀 시리즈 #29 함수 - DATEDIF, EDATE, WORKDAY로 근무일 계산 자동화하기
안녕하세요 7옥타브고양이 입니다.
사무직에서 '근무일 계산'은 인사(입사·퇴사·휴직일 계산), 프로젝트 일정, 납기일 관리 등 다양하게 쓰입니다. 오늘은 DATEDIF, EDATE, WORKDAY 세 가지 핵심 함수를 중심으로, 실무에서 바로 쓰는 예제(휴가계산, 계약기간, 영업 납기 계산)를 단계별로 정리합니다. 각 수식은 복사 후 바로 붙여넣어 사용할 수 있도록 코드블록으로 제공합니다.

🔎 이번 포스트에서 얻을 수 있는 것
- DATEDIF로 '년·월·일' 단위의 근속/계약 기간 계산
- EDATE로 '월 단위' 만기일 자동 계산(월말 처리 포함)
- WORKDAY로 '근무일(평일) 기준' 납기/기한 계산 — 공휴일 제외 옵션 포함
- 실무 예제 표와 복사 가능한 수식 제공
1️⃣ DATEDIF — 근속기간, 계약기간을 '년·월·일'로 보여주기
DATEDIF는 시작일과 종료일 사이의 차이를 다양한 단위로 반환합니다. (엑셀에는 메뉴로 없지만 수식으로 강력하게 사용됩니다.)
=DATEDIF(시작일, 종료일, "단위")단위 예: "Y" (전체 년), "M" (전체 월), "D" (일), "YM" (년 제외 월), "MD" (월·년 제외 일)
실무 예제 — 입사일 → 현재 근속기간(예: 3년 2개월 12일)
| 입사일 (A) | 기준일 (B) | 근속기간 (결과) |
|---|---|---|
| 2019-08-15 | =TODAY() | 수식 아래 참조 |
복사해서 사용 가능한 수식 (결과 예: "3년 2개월 12일" 형태)
=DATEDIF(A2,B2,"Y") & "년 " & DATEDIF(A2,B2,"YM") & "개월 " & DATEDIF(A2,B2,"MD") & "일"
📌 주의: DATEDIF의 "MD"는 달 사이 차이만 계산하기 때문에 월말 처리 상황에서 기대와 다른 값이 나올 수 있습니다. (아래 팁 참고)

2️⃣ EDATE — 월 단위 만기(기간 더하기) / 월말 기준 처리
EDATE는 시작일에서 지정한 개월 수만큼 더한 날짜를 반환합니다. 계약서·구독 만기, 월 단위 리마인더 설정 등에 유용합니다.
=EDATE(시작일, 개월수)실무 예제 — 1년(12개월) 계약의 만기일
| 계약시작일 | 개월수 | 만기일 (결과) |
|---|---|---|
| 2024-11-30 | 12 | 수식 아래 참조 |
=EDATE(A2, 12)
📌 팁: EDATE는 '월말 규칙'을 따릅니다. 예를 들어 시작일이 2024-01-31이고 EDATE(...,1)을 쓰면 결과는 2024-02-29(윤년 포함) 또는 해당 월의 마지막 날로 반환됩니다. 계약 만기일을 '월말' 기준으로 통일할 때 유용합니다.

3️⃣ WORKDAY / WORKDAY.INTL — 영업일(평일) 기준 납기 계산 (공휴일 제외)
WORKDAY는 시작일로부터 지정된 '근무일(영업일)'만큼 더한 날짜를 반환합니다. 공휴일 목록을 별도 범위로 지정하면 그 날짜들을 제외하고 계산합니다. 국제적 요건(주말이 토·일이 아닌 경우)이 있으면 WORKDAY.INTL로 요일 패턴을 직접 설정할 수 있습니다.
=WORKDAY(시작일, 영업일수, [공휴일범위])=WORKDAY.INTL(시작일, 영업일수, [주말패턴], [공휴일범위])실무 예제 — 영업 기준 7 근무일 납기. 공휴일(예: 2025-05-01)을 제외
| 주문일 | 영업일수 | 공휴일 목록(예) | 납기일 (결과) |
|---|---|---|---|
| 2025-04-25 | 7 | {2025-05-01,2025-05-05} | 수식 아래 참조 |
=WORKDAY(A2, B2, E2:E3)
위에서 F2:F3 범위에 공휴일 날짜(실제 공휴일 목록)를 넣으면 해당 날짜들을 제외하고 납기일을 계산합니다.
만약 주말이 금·토인 국가(또는 업체 규정)에 맞추려면 WORKDAY.INTL를 쓰세요

=WORKDAY.INTL(A2, B2, "0000011", E2:E3)
여기서 "0000011"은 요일 패턴(일~토; 1=비근무, 0=근무)을 의미합니다. (예: 금·토를 주말로 지정)
4️⃣ 실무 팁 & 오류 처리
- 휴일 범위는 별도의 시트에 관리하면 연 단위로 재사용하기 편합니다. (예: Holidays!A:A)
- IFERROR로 날짜 입력 오류를 처리하세요. 예:
=IFERROR(WORKDAY(A2,B2,Holidays!A:A),"입력확인") - 한국 날짜 형식(yyyy-mm-dd) 권장 — 텍스트 형식 날짜는 DATEVALUE로 변환 필요.
- DATEDIF의 MD 단위로 정확한 '일' 차를 원할 때는 월말 케이스 검증 필요. (예: 시작 31일 → 결과가 음수로 보일 수 있음)
- 피벗/대시보드에 적용 시, 만기일·납기일을 별도 열로 만들어 필터·조건부서식 적용을 권장합니다.
5️⃣ 마무리 (요약)
오늘은 실무에서 자주 쓰는 날짜/근무일 함수 DATEDIF, EDATE, WORKDAY를 사례 중심으로 정리했습니다. - DATEDIF: 근속·계약 기간(년·월·일) 계산에 유용
- EDATE: 월 단위 만기일, 월말 규칙 자동 반영
- WORKDAY(또는 WORKDAY.INTL): 영업일 기준 납기 계산 + 공휴일 제외
예제 수식들을 바로 복사해 사용해보시고, 공휴일 범위(예: Holidays 시트)를 만들어 관리하면 사내 보고서·납기 관리·인사계산 업무의 정확성과 효율을 크게 높일 수 있습니다.
다음 포스팅에서는 엑셀 시리즈 #30 함수 - WEEKDAY 함수로 요일 자동 표시 보고서 만들기를 다룰 예정이에요.
✍️ 작성자: 7옥타브고양이
'IT > 엑셀' 카테고리의 다른 글
| 엑셀 시리즈 #30 함수 - WEEKDAY 함수로 요일 자동 표시 보고서 만들기 (4) | 2025.11.21 |
|---|---|
| 엑셀 시리즈 #28 함수 - TEXTJOIN, CONCAT으로 자동 문장 생성하기 (11) | 2025.11.19 |
| 엑셀 시리즈 #27 함수 - FIND, SEARCH 함수로 텍스트 자동 탐색하기 (12) | 2025.11.18 |
| 엑셀 시리즈 #26 함수 - LEFT, RIGHT, MID 함수로 이름·코드 자동 분리하기 (20) | 2025.11.17 |
| 엑셀 시리즈 #25 함수 - 고급 필터 기능으로 부서별 보고서 자동 생성하기 (15) | 2025.11.14 |
