엑셀 시리즈 #29 함수 - DATEDIF, EDATE, WORKDAY로 근무일 계산 자동화하기

📅 엑셀 시리즈 #29 함수 - DATEDIF, EDATE, WORKDAY로 근무일 계산 자동화하기

안녕하세요 7옥타브고양이 입니다.

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

엑셀 시리즈 #29 함수 - 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옥타브고양이

반응형