엑셀 날짜 계산 함수 7가지: DATEDIF 근속연수·NETWORKDAYS 영업일·EDATE 만기일 수식과 오류 해결표

엑셀 날짜 계산은 목적에 맞는 함수 하나만 고르면 끝납니다. 두 날짜 사이의 년·월·일은 DATEDIF, 주말과 공휴일을 뺀 영업일은 NETWORKDAYS, 몇 개월 뒤 만기일은 EDATE, 그 달 말일은 EOMONTH를 씁니다. 다만 날짜가 텍스트로 입력돼 있으면 모든 수식이 오류를 내니, 아래 예제와 오류 해결표로 한 번에 정리하세요.

마이크로소프트 공식 함수 도움말 보기 →

공식 도움말에서 함수 인수와 주의사항을 확인할 수 있습니다.

엑셀 날짜 계산을 위해 DATEDIF와 NETWORKDAYS 수식을 입력한 스프레드시트 화면
엑셀 날짜 계산을 위해 DATEDIF와 NETWORKDAYS 수식을 입력한 스프레드시트 화면

먼저 결론

  • 근속연수·나이: =DATEDIF(시작일,종료일,"Y")
  • 영업일 수: =NETWORKDAYS(시작일,종료일,공휴일범위)
  • 3개월 뒤 같은 날: =EDATE(시작일,3), 그 달 말일: =EOMONTH(시작일,0)
  • 오늘 기준 계산은 TODAY()를 종료일에 넣으면 매일 자동 갱신됩니다.
  • 날짜가 왼쪽 정렬이면 텍스트일 가능성이 높아 먼저 날짜로 바꿔야 합니다.

엑셀 날짜 계산의 원리

엑셀은 날짜를 1900년 1월 1일을 1로 하는 일련번호로 저장합니다. 그래서 =B2-A2처럼 날짜끼리 빼기만 해도 두 날짜 사이의 일수가 나옵니다. 셀 서식만 “날짜”로 보이게 바꿀 뿐 속은 숫자라는 점을 기억하면 대부분의 오류를 이해할 수 있습니다.

반대로 “2026.11.07”처럼 마침표로 입력하거나 다른 프로그램에서 붙여 넣은 날짜는 텍스트로 들어가 계산이 되지 않습니다. 셀 안에서 왼쪽으로 붙어 있다면 텍스트 날짜를 의심하세요.

목적별 함수 7가지 비교표

목적 함수 기본 형식 주의점
년·월·일 차이 DATEDIF =DATEDIF(A2,B2,"Y") 함수 마법사 목록에 없음, 직접 입력
영업일 수 NETWORKDAYS =NETWORKDAYS(A2,B2,H:H) 시작일·종료일 포함
휴무 요일 지정 NETWORKDAYS.INTL =NETWORKDAYS.INTL(A2,B2,11) 11은 일요일만 휴무
영업일 뒤 날짜 WORKDAY =WORKDAY(A2,10,H:H) 시작일 다음 날부터 셈
몇 개월 뒤 같은 날 EDATE =EDATE(A2,6) 결과가 숫자로 보이면 날짜 서식 적용
그 달 말일 EOMONTH =EOMONTH(A2,0) 1은 다음 달 말일
연 단위 비율 YEARFRAC =YEARFRAC(A2,B2,1) 이자·일할 계산에 사용

실무 예제 수식 모음

① 근속 “○년 ○개월 ○일”
=DATEDIF(A2,TODAY(),"Y")&"년 "&DATEDIF(A2,TODAY(),"YM")&"개월 "&DATEDIF(A2,TODAY(),"MD")&"일"

② 만 나이
=DATEDIF(생년월일,TODAY(),"Y")

③ 공휴일 뺀 이번 달 영업일
=NETWORKDAYS(EOMONTH(TODAY(),-1)+1,EOMONTH(TODAY(),0),공휴일!A:A)

④ 계약일 기준 2년 만기일 전날
=EDATE(A2,24)-1

⑤ D-day 표시
="D-"&(B2-TODAY())

마이크로소프트는 DATEDIF의 “MD” 단위가 일부 경우 음수나 부정확한 값을 낼 수 있다고 안내합니다. 일 단위가 중요한 근속 계산이라면 결과를 한두 건 손으로 검산하세요. 데이터를 다른 표에서 찾아와야 한다면 엑셀 XLOOKUP 사용법과 함께 쓰면 편합니다.

오류 원인별 해결표

증상 원인 해결
#VALUE! 날짜가 텍스트로 입력됨 데이터 → 텍스트 나누기 → 날짜(YMD) 변환, 또는 DATEVALUE
#NUM! DATEDIF 시작일이 종료일보다 늦음 인수 순서 바꾸기
46333 같은 숫자 표시 결과 셀 서식이 일반 Ctrl+1 → 날짜 서식
영업일이 하루 많음 NETWORKDAYS는 양 끝 날짜 포함 결과에서 1을 빼거나 기준 정리
공휴일이 안 빠짐 공휴일 목록이 텍스트 공휴일 범위도 날짜 형식으로

실수 없이 쓰는 6단계

1단계: 날짜 열을 진짜 날짜로 바꿉니다. 열 전체를 선택하고 “텍스트 나누기”에서 날짜(YMD)를 지정하면 한 번에 변환됩니다.

2단계: 같은 값이 중복되지 않았는지 봅니다. 명단이 겹치면 계산이 두 번 들어갑니다. 엑셀 중복값 찾기·제거 방법으로 먼저 정리하세요.

3단계: 공휴일 시트를 따로 만듭니다. 대체공휴일·임시공휴일까지 날짜로 입력해 두면 NETWORKDAYS와 WORKDAY에 같이 씁니다.

4단계: 목적에 맞는 함수를 고릅니다. 위 비교표에서 “일수 / 영업일 / 만기일 / 말일” 중 무엇이 필요한지 정합니다.

5단계: 기준일은 TODAY 또는 고정 날짜로 정합니다. 보고서처럼 기준일이 바뀌면 안 되는 문서는 TODAY 대신 특정 날짜 셀을 참조합니다.

6단계: 두세 건을 손으로 검산합니다. 윤년(2월 29일)과 월말이 낀 경우를 꼭 확인합니다.

실수 방지 체크리스트

  • 날짜가 셀 오른쪽 정렬(숫자)로 보인다
  • DATEDIF 인수 순서가 시작일 → 종료일이다
  • 공휴일 목록에 대체공휴일까지 넣었다
  • NETWORKDAYS가 양 끝 날짜를 포함한다는 걸 반영했다
  • 결과 셀에 날짜 서식을 적용했다
  • 보고서 기준일을 TODAY로 할지 고정할지 정했다
  • 윤년·월말 사례를 검산했다

자주 묻는 질문 10개

1. DATEDIF가 함수 목록에 안 보여요.

호환성 때문에 남아 있는 숨은 함수라 목록에 없습니다. 셀에 직접 입력하면 작동합니다.

2. 근속일수에 입사일을 포함하려면요?

=B2-A2+1처럼 1을 더합니다.

3. 토요일만 근무하는 회사의 영업일은요?

NETWORKDAYS.INTL의 주말 인수를 “0000001”처럼 7자리 문자열로 지정하면 원하는 요일만 휴무로 둘 수 있습니다.

4. 1월 31일에 EDATE로 1개월을 더하면요?

2월 말일(28일 또는 29일)이 나옵니다. 존재하지 않는 날짜는 그 달 말일로 맞춰집니다.

5. 시간까지 포함한 날짜 차이는요?

두 셀을 빼면 일 단위 소수가 나오므로 24를 곱하면 시간 단위가 됩니다.

6. 요일을 표시하려면요?

=TEXT(A2,"aaa")는 “월”, “aaaa”는 “월요일”로 표시합니다.

7. 구글 시트에서도 같은 수식이 되나요?

DATEDIF, NETWORKDAYS, EDATE, EOMONTH 모두 구글 시트에서 같은 형식으로 쓸 수 있습니다.

8. 텍스트 “20261107”을 날짜로 바꾸려면요?

=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))로 변환합니다.

9. 만기일이 주말이면 다음 영업일로 옮기려면요?

=WORKDAY(만기일-1,1,공휴일)을 쓰면 주말·공휴일이면 다음 영업일이 나옵니다.

10. 엑셀 버전이 낮아도 되나요?

이 글의 함수는 오래된 버전부터 지원됩니다. 운영체제 업그레이드가 필요하다면 윈도우11 설치 요구사항 확인법을 참고하세요.

다음 단계: XLOOKUP으로 데이터 찾기 →

날짜 계산과 함께 쓰는 조회 함수를 이어서 확인할 수 있습니다.

공식 출처와 확인일

자료 확인일: 2026년 11월 07일

본 글은 일반적인 사용 방법 안내입니다. 엑셀 버전과 지역 설정에 따라 메뉴 이름이나 인수 구분 기호가 다르게 보일 수 있으니, 중요한 급여·계약 계산은 결과를 다시 검산하시기 바랍니다.