엑셀에서 업무를 하다 보면 두 날짜 사이에 며칠이 지났는지 계산해야 하는 경우가 많습니다.
예를 들어 입사일부터 퇴사일까지의 근무일수, 계약 시작일부터 종료일까지의 계약기간, 대여일과 반납일 사이의 이용기간 등을 계산할 때 날짜 차이를 구해야 합니다.
엑셀에서는 복잡한 함수 없이 종료일에서 시작일을 빼는 것만으로 두 날짜 사이의 일수를 계산할 수 있습니다.
이번 글에서는 엑셀 두 날짜 사이 일수 계산 방법부터 DATEDIF 함수, 오늘 날짜까지의 경과일수, 시작일과 종료일을 모두 포함하는 방법까지 알아보겠습니다.
엑셀 두 날짜 사이 일수 계산 기본 방법
다음과 같이 날짜가 입력되어 있다고 가정해 보겠습니다.
| 시작일 | 종료일 |
|---|---|
| 2026-08-01 | 2026-08-20 |
시작일이 A2 셀, 종료일이 B2 셀에 있다면 C2 셀에 다음 수식을 입력합니다.
=B2-A2
결과는 다음과 같습니다.
19
즉, 2026년 8월 1일부터 8월 20일까지 두 날짜의 차이는 19일입니다.
엑셀에서는 날짜를 내부적으로 일련번호 형태의 숫자로 저장하기 때문에 날짜끼리 뺄셈을 하면 두 날짜 사이의 일수 차이를 바로 계산할 수 있습니다.
시작일과 종료일을 모두 포함하려면?
날짜를 계산할 때 가장 많이 헷갈리는 부분 중 하나입니다.
앞의 예제처럼
- 시작일 : 2026-08-01
- 종료일 : 2026-08-20
인 경우
=B2-A2
를 사용하면 결과는 19일입니다.
하지만 8월 1일을 1일째로 계산하고 8월 20일까지 모두 포함해야 한다면 실제 날짜 개수는 20일입니다.
이때는 결과에 1을 더하면 됩니다.
=B2-A2+1
따라서 시작일과 종료일을 모두 포함한 기간은 20일이 됩니다.
숙박일수처럼 두 날짜 사이의 차이만 필요한지, 근무기간처럼 시작일부터 종료일까지 날짜를 모두 세어야 하는지에 따라 계산 방법을 구분해야 합니다.
DATEDIF 함수로 두 날짜 사이 일수 계산하기
DATEDIF 함수를 이용하는 방법도 있습니다.
수식은 다음과 같습니다.
=DATEDIF(A2,B2,"d")
여기에서
- A2 : 시작일
- B2 : 종료일
"d": 두 날짜 사이의 일수
를 의미합니다.
예를 들어 A2가 2026-08-01이고 B2가 2026-08-20이라면 결과는 19입니다.
단순히 일수만 계산하는 경우에는 =B2-A2가 훨씬 간단하지만, DATEDIF 함수는 연·월·일 단위로 기간을 구분해서 계산할 때 유용합니다.
오늘 날짜까지 며칠 지났는지 계산하기
특정 날짜부터 오늘까지 며칠이 지났는지 자동으로 계산하려면 TODAY 함수를 사용하면 됩니다.
A2 셀에 시작일이 입력되어 있다면 다음과 같이 작성합니다.
=TODAY()-A2
예를 들어 A2 셀에 입사일이나 가입일을 입력해 놓으면 오늘 날짜를 기준으로 몇 일이 지났는지 자동으로 계산됩니다.
DATEDIF 함수를 이용한다면 다음과 같이 사용할 수도 있습니다.
=DATEDIF(A2,TODAY(),"d")
TODAY 함수는 현재 날짜를 자동으로 가져오기 때문에 날짜가 바뀌면 계산 결과도 함께 변경됩니다.
따라서 재직일수, 가입일수, 사용일수 등을 자동으로 관리할 때 활용하기 좋습니다.
날짜를 직접 입력해서 일수 계산하기
셀을 참조하지 않고 수식 안에 날짜를 직접 입력해야 하는 경우에는 DATE 함수를 사용할 수 있습니다.
예를 들어 2026년 8월 1일부터 2026년 8월 20일까지의 일수를 계산하려면 다음과 같이 입력합니다.
=DATE(2026,8,20)-DATE(2026,8,1)
결과는 19입니다.
날짜를 "2026-08-20"처럼 직접 문자열로 입력하는 것보다 DATE 함수를 사용하면 날짜 형식이나 지역 설정에 따른 오류를 줄일 수 있습니다.
두 날짜 사이의 평일만 계산하려면?
회사 업무에서는 단순한 날짜 차이가 아니라 토요일과 일요일을 제외한 근무일수가 필요한 경우도 있습니다.
이때 사용할 수 있는 대표적인 함수가 NETWORKDAYS입니다.
=NETWORKDAYS(A2,B2)
NETWORKDAYS 함수는 시작일과 종료일 사이에서 토요일과 일요일을 제외하고 평일의 개수를 계산합니다.
여기서 중요한 차이가 있습니다.
=B2-A2
는 단순히 날짜의 차이를 계산하지만,
=NETWORKDAYS(A2,B2)
는 시작일과 종료일을 포함하여 평일인 날짜의 개수를 계산합니다.
따라서 두 함수의 결과를 단순 비교하면 숫자가 다르게 나올 수 있습니다.
공휴일까지 제외해서 근무일수 계산하기
주말뿐만 아니라 회사에서 관리하는 공휴일까지 제외하려면 NETWORKDAYS 함수에 공휴일 범위를 추가할 수 있습니다.
예를 들어
- A2 : 시작일
- B2 : 종료일
- E2:E10 : 제외할 공휴일
이라면 다음과 같이 입력합니다.
=NETWORKDAYS(A2,B2,E2:E10)
이렇게 하면 토요일과 일요일뿐 아니라 E2:E10에 입력된 공휴일까지 제외하여 근무일수를 계산할 수 있습니다.
회사 휴가일수나 프로젝트 실제 업무일 등을 계산할 때 활용하기 좋은 방법입니다.
결과가 날짜로 표시될 때 해결 방법
두 날짜를 빼는 수식을 입력했는데 결과가 1900-01-19와 같은 날짜 형태로 표시되는 경우가 있습니다.
계산이 잘못된 것이 아니라 결과 셀의 표시 형식이 날짜로 설정되어 있기 때문입니다.
결과 셀을 선택한 다음
홈 → 표시 형식 → 일반 또는 숫자
로 변경하면 정상적인 일수로 표시됩니다.
예를 들어 날짜 형태로 보였던 결과가 표시 형식을 일반으로 변경하면 19와 같은 숫자로 나타납니다.
종료일이 비어 있을 때 오류 방지하기
실무용 엑셀에서는 종료일이 아직 입력되지 않은 행이 있을 수 있습니다.
이 상태에서 날짜 계산 수식을 미리 입력해 두면 원하지 않는 결과가 나타날 수 있습니다.
이때 IF 함수를 함께 사용하면 편리합니다.
=IF(B2="","",B2-A2)
B2에 종료일이 없다면 빈칸으로 표시하고, 종료일이 입력되어 있다면 두 날짜 사이의 일수를 계산합니다.
입사자·퇴사자 관리표나 계약기간 관리표처럼 계속 데이터를 추가하는 문서에서 활용하기 좋은 수식입니다.
엑셀 두 날짜 사이 일수 계산 방법 정리
사용 목적에 따라 필요한 수식은 다음과 같습니다.
| 계산 목적 | 수식 |
|---|---|
| 두 날짜의 일수 차이 | =B2-A2 |
| 시작일·종료일 모두 포함 | =B2-A2+1 |
| DATEDIF로 일수 계산 | =DATEDIF(A2,B2,"d") |
| 시작일부터 오늘까지 | =TODAY()-A2 |
| 평일만 계산 | =NETWORKDAYS(A2,B2) |
| 공휴일까지 제외 | =NETWORKDAYS(A2,B2,E2:E10) |
| 종료일이 없으면 빈칸 | =IF(B2="","",B2-A2) |
단순히 두 날짜 사이에 며칠 차이가 있는지 알고 싶다면 =B2-A2가 가장 간단합니다.
반대로 시작일과 종료일을 모두 하루씩 포함해야 한다면 +1을 추가해야 합니다.
또한 실제 업무일을 계산하려는 경우에는 NETWORKDAYS 함수를 활용하면 주말이나 지정한 공휴일을 제외할 수 있습니다.
일수가 아닌 개월 수를 계산하려면?
두 날짜 사이의 기간을 일수가 아니라 개월 수로 계산해야 하는 경우도 있습니다.
예를 들어 입사 후 몇 개월이 지났는지, 계약기간이 총 몇 개월인지 계산하려면 DATEDIF 함수의 "m" 옵션을 사용할 수 있습니다.
=DATEDIF(A2,B2,"m")
이 수식은 두 날짜 사이에서 완전히 경과한 개월 수를 계산합니다.
개월 수 계산은 일수 계산과 기준이 조금 다르기 때문에 자세한 내용은 「엑셀 개월 수 계산 방법」 글에서 확인할 수 있습니다.
마무리
엑셀에서 두 날짜 사이의 일수를 구하는 가장 간단한 방법은 종료일에서 시작일을 빼는 것입니다.
=B2-A2
이 수식만 기억해도 대부분의 날짜 차이 계산을 해결할 수 있습니다.
다만 실제 업무에서는 시작일과 종료일을 모두 포함할 것인지, 주말을 제외할 것인지, 공휴일까지 제외할 것인지에 따라 필요한 수식이 달라집니다.
따라서 단순 날짜 차이는 B2-A2, 평일 기준 업무일수는 NETWORKDAYS처럼 계산 목적에 맞게 함수를 선택하는 것이 좋습니다.
“엑셀 두 날짜 사이 일수 계산 방법 (DATEDIF)”에 대한 1개의 생각