엑셀 날짜 계산 함수 DATEDIF 총정리: 숨겨진 마법을 경험해 보셨나요?
직장 생활을 하다 보면 날짜만큼 골치 아픈 것도 없는 것 같습니다. 특히 인사나 회계 업무를 하시는 분들이라면 ‘이 사람이 우리 회사에 몇 년 몇 개월 몇 일 동안 근무했을까?’ 혹은 ‘특정 프로젝트의 경과 기간을 연, 월, 일 단위로 정확히 쪼개서 보여줘야 하는데 어떻게 해야 할까?’ 같은 고민에 빠지곤 하죠.

저 역시 예전에 복잡한 근속 기간 보고서를 만들다가 크게 곤란을 겪은 적이 있습니다. 단순히 시작일에서 종료일을 빼면 날짜 차이는 나오지만, 그 결과를 다시 ‘년’과 ‘월’로 변환하는 과정이 너무 복잡했어요. 수십 줄의 데이터를 처리할 때마다 머리가 지끈거렸죠. 그런데 그때 구세주처럼 만난 것이 바로 엑셀 날짜 계산 함수 DATEDIF입니다. 이 함수는 엑셀 도움말에도 잘 나오지 않아서 ‘숨겨진 함수’라고도 불리지만, 일단 알고 나면 날짜 계산 작업의 효율이 10배는 올라간다고 장담할 수 있습니다.
오늘은 이 놀라운 DATEDIF 함수를 어떻게 활용하여 복잡한 날짜 문제를 단숨에 해결할 수 있는지 저의 경험과 함께 자세히 정리해 보겠습니다. 날짜 계산 때문에 아직도 고생하고 계시다면, 이 글을 끝까지 읽어보세요!
DATEDIF 함수는 왜 꼭 필요할까요?
엑셀에서 날짜를 다룰 때, 흔히 TODAY()나 NOW() 같은 함수를 사용하거나, 단순히 큰 날짜에서 작은 날짜를 빼서 일수를 구합니다. 하지만 만약 ‘만 나이’나 ‘정확한 근속 연수’처럼 연, 월, 일 세 가지 단위를 모두 표시해야 할 때는 어떨까요? YEAR, MONTH, DAY 함수를 각각 써서 계산해도 되지만, 윤년이나 월별 일수 차이 때문에 계산이 틀어지기 쉽고 수식이 엄청나게 길어집니다.
DATEDIF 함수는 이 모든 복잡한 과정을 한 방에 정리해 줍니다. 이 함수는 두 날짜 사이의 기간을 지정된 단위(년, 월, 일)로 정확하게 계산해 주는 특화된 함수입니다. 재미있는 것은 마이크로소프트가 공식적으로 이 함수의 존재를 명시하지 않고 숨겨두었기 때문에, 함수 자동 완성 기능에서 나타나지 않는다는 점입니다. 하지만 분명히 작동하며, 엑셀 날짜 계산 함수 중에서는 단연 최고의 효율을 자랑합니다.
DATEDIF 함수의 기본 구조와 사용법을 익혀봅시다
DATEDIF 함수는 매우 간단한 구조를 가지고 있습니다. 딱 세 가지 인수만 넣어주면 됩니다.
=DATEDIF(시작일, 종료일, 단위)
여기서 가장 중요한 부분은 바로 ‘단위’입니다. 우리가 어떤 형태로 결과를 볼 것인지 결정하는 문자열이죠. 이 단위만 제대로 이해하면 DATEDIF 마스터가 될 수 있습니다.
| 단위 코드 | 설명 | 주요 용도 |
|---|---|---|
| “Y” | 두 날짜 사이의 만 연수를 계산합니다. (나이 계산에 유용) | 만 나이, 만 연차 |
| “M” | 두 날짜 사이의 전체 총 개월 수를 계산합니다. | 총 근무 개월 |
| “D” | 두 날짜 사이의 전체 총 일수를 계산합니다. | 총 경과 일수 |
| “YM” | 만 연수를 제외한 나머지 개월 수를 계산합니다. (가장 중요!) | 근속 기간의 ‘월’ 부분 |
| “MD” | 만 개월을 제외한 나머지 일 수를 계산합니다. (자주 틀리는 부분) | 근속 기간의 ‘일’ 부분 |
| “YD” | 만 연수를 제외한 나머지 일 수를 계산합니다. (1년 미만 날짜 계산) | 특정 연도의 경과 일수 |
특히 ‘YM’, ‘MD’, ‘YD’ 같은 조합형 단위는 다른 엑셀 날짜 계산 함수들이 흉내 낼 수 없는 DATEDIF만의 강력한 기능입니다. 예를 들어, 2020년 5월 1일부터 2023년 7월 20일까지의 기간을 계산한다고 가정해 봅시다. 만약 YM을 사용하면 ‘만 3년’을 제외한 나머지 개월 수인 2개월만 결과로 보여줍니다.
만 나이와 근속 기간 계산, 실전에서 어떻게 활용해야 할까요?
DATEDIF을 가장 많이 사용하는 두 가지 상황은 ‘정확한 만 나이 계산’과 ‘근속 연월일 계산’입니다. 제가 실제로 회사에서 사용했던 방법을 단계별로 설명드릴게요.
1. 만 나이를 정확하게 계산하려면?
만 나이는 생일이 지나야 한 살이 추가되므로, 단순히 현재 연도에서 태어난 연도를 빼면 틀릴 수 있습니다. DATEDIF의 ‘Y’ 단위를 사용하면 이런 실수를 줄일 수 있습니다.
- 시작일: 생년월일 (예: A2 셀)
- 종료일: 오늘 날짜 (TODAY())
- 단위: “Y”
수식: =DATEDIF(A2, TODAY(), “Y”)
이 수식 하나면, 현재 시점을 기준으로 생일이 지났는지 여부를 정확히 판단하여 만 나이를 출력해 줍니다. 연말정산 서류 준비할 때마다 이거 모르면 수동으로 확인하느라 시간 다 보냈었죠.
2. 복잡한 근속 기간을 연/월/일로 나누어 표시하려면?
이것이 바로 DATEDIF의 진가입니다. 근속 기간을 ‘3년 2개월 19일’처럼 깔끔하게 한 셀에 나타내야 할 때가 많습니다. 이때는 앞서 표에서 본 Y, YM, MD 단위를 각각 사용한 후, 텍스트 연결 연산자(&)를 이용해야 합니다.
- 시작일: 입사일 (예: B2 셀)
- 종료일: 퇴사일 또는 오늘 날짜 (예: C2 셀)
① 년수 계산 (Y): =DATEDIF(B2, C2, “Y”) & “년 “
② 개월 수 계산 (YM): & DATEDIF(B2, C2, “YM”) & “개월 “
③ 일수 계산 (MD): & DATEDIF(B2, C2, “MD”) & “일”
이 세 가지를 하나로 합치면 다음과 같은 완성된 수식이 됩니다. 이 수식을 처음 만들고 나서 얼마나 뿌듯했는지 모릅니다. 정말 마법 같았죠. 이처럼 DATEDIF는 복잡한 수식 없이도 날짜를 원하는 단위로 쪼개는 데 최적화된 엑셀 날짜 계산 함수입니다.
완성 수식: =DATEDIF(B2, C2, “Y”) & “년 ” & DATEDIF(B2, C2, “YM”) & “개월 ” & DATEDIF(B2, C2, “MD”) & “일”
DATEDIF 사용 시 주의해야 할 점이 있나요?
DATEDIF이 완벽해 보이지만, 몇 가지 주의할 점이 있습니다. 특히 초보자분들이 많이 실수하는 부분이니 꼭 기억해 두세요.
첫째, 시작일과 종료일의 순서가 중요합니다.
DATEDIF 함수는 무조건 시작일 < 종료일 순서로 입력되어야 합니다. 만약 종료일이 시작일보다 앞서 있다면 (#NUM! 오류)가 발생합니다. 가끔 데이터를 입력하다가 실수로 순서가 바뀌는 경우가 있으니 입력 값을 꼭 확인해야 합니다.
둘째, “MD” 단위의 오류 가능성입니다.
MD 단위는 ‘만 개월을 제외한 나머지 일 수’를 계산합니다. 그런데 이 MD 단위가 생각보다 복잡하게 작동할 때가 있습니다. MD는 시작일의 날짜와 종료일의 날짜를 비교하여 계산하는데, 만약 윤년이나 월별 일수 차이 때문에 예상치 못한 결과가 나올 수 있습니다. 예를 들어 1월 31일에서 3월 1일까지를 계산할 경우, 실제 일수는 맞지만 DATEDIF는 2월 31일이 없기 때문에 조금 헷갈리는 결과를 낼 때가 있습니다. 따라서 MD 결과가 이상하다면, 직접 두 날짜를 빼서 일수를 구한 후 30.4로 나누어 월을 추정하는 다른 방식을 병행하는 것이 안전할 수도 있습니다.
셋째, 수식 자동 완성 기능이 없습니다.
가장 중요한 부분입니다. 이 엑셀 날짜 계산 함수는 엑셀에 숨겨져 있기 때문에 ‘=DAT…’를 입력해도 추천 목록에 뜨지 않습니다. 따라서 수식을 직접 타이핑하거나, 미리 복사해 둔 수식을 붙여 넣어야 합니다. 오타가 나지 않도록 특히 조심해야 합니다.
마무리하며: DATEDIF이 주는 업무 혁신
엑셀 작업은 시간을 얼마나 절약하느냐의 싸움이라고 해도 과언이 아닙니다. DATEDIF을 알기 전에는 복잡하게 YEAR, MONTH 함수를 섞어 가며 시간 낭비를 했지만, 이제는 몇 초 만에 수백 명의 근속 기간을 정확하게 계산할 수 있게 되었죠.
DATEDIF 함수는 처음에는 낯설게 느껴질 수 있지만, ‘Y’, ‘YM’, ‘MD’ 이 세 가지만 제대로 외워서 활용한다면 날짜 관련 보고서는 더 이상 두렵지 않을 겁니다. 이 글이 여러분의 엑셀 작업 효율을 높이는 데 큰 도움이 되었기를 바랍니다. 숨겨진 DATEDIF의 마법을 직접 경험해보시고, 오늘부터 칼퇴하세요!
자주 묻는 질문
DATEDIF 함수를 사용했는데 결과가 #NUM! 오류로 뜨는 이유는 무엇인가요?
이 오류는 대부분 시작일과 종료일의 순서가 잘못되었을 때 발생합니다. DATEDIF는 무조건 시작일(더 오래된 날짜)이 종료일(최근 날짜)보다 앞서야 계산이 됩니다. 셀의 순서를 바꾸거나, 혹시 날짜 형식이 텍스트로 잘못 입력되지 않았는지 확인해 보세요.
DATEDIF을 사용해서 개월 수를 구할 때, “M”과 “YM” 단위는 어떻게 다른가요?
DATEDIF를 사용해서 개월 수를 구할 때, “M”과 “YM” 단위는 어떻게 다른가요?
“M”은 두 날짜 사이의 총 개월 수를 모두 계산합니다. 예를 들어 3년이면 36개월을 출력합니다. 반면, “YM”은 만 연수를 계산하고 남은 나머지 개월 수만 계산합니다. 근속 기간을 ‘년, 월, 일’ 형태로 보여줄 때는 “YM”을 사용해야 정확한 ‘월’ 단위가 나옵니다.
DATEDIF 함수는 왜 엑셀 함수 목록에서 검색되지 않는 건가요? 제가 엑셀 버전을 잘못 사용하고 있는 걸까요?
아닙니다. 버전에 관계없이 DATEDIF 함수는 Microsoft가 공식적으로 숨겨둔 ‘하위 호환성’을 위한 함수로 알려져 있습니다. 기능 자체는 제공되지만, 목록이나 도움말에는 표시하지 않기로 한 것이죠. 따라서 검색되지 않는 것이 정상이며, 수식을 직접 입력해야만 사용이 가능합니다.