엑셀 DATEDIF 함수로 나이·근속연수·D-day 한 번에 계산하기
연말 인사 서류를 정리하다가 직원 30명의 근속연수를 손으로 계산한 적이 있습니다. 입사일에서 오늘 날짜를 빼고, 365로 나누고, 윤년까지 신경 쓰다 보니 결국 두 명의 숫자가 어긋나서 처음부터 다시 확인해야 했습니다. 이런 날짜 계산은 사람이 손으로 하면 반드시 어딘가에서 틀립니다. 다행히 엑셀에는 이 문제를 단 한 줄로 해결해 주는 함수가 있습니다. 바로 DATEDIF 함수입니다.
DATEDIF 함수의 기본 문법
DATEDIF는 두 날짜 사이의 차이를 원하는 단위로 돌려주는 함수입니다. 구조는 아주 단순합니다.
=DATEDIF(시작일, 종료일, "단위")
첫 번째 인수에는 더 이른 날짜(시작일), 두 번째 인수에는 더 늦은 날짜(종료일)를 넣습니다. 세 번째 인수인 "단위"는 결과를 어떤 형태로 받을지 정하는 부분이며, 반드시 큰따옴표로 감싸야 합니다. 이 단위만 바꾸면 같은 두 날짜에서 햇수, 개월수, 일수를 자유롭게 뽑아낼 수 있습니다.
단위별 정리
가장 많이 쓰는 세 가지 기본 단위는 다음과 같습니다.
| 단위 | 의미 | 활용 예 |
|---|---|---|
| "Y" | 두 날짜 사이에 꽉 채운 햇수(만으로 지난 해의 수) | 만 나이, 근속연수 |
| "M" | 두 날짜 사이의 전체 개월수 | 총 재직 개월, 구독 유지 개월 |
| "D" | 두 날짜 사이의 전체 일수 | D-day, 경과 일수 |
핵심은 "Y"와 "M"이 완전히 채운 단위만 센다는 점입니다. 예를 들어 2년 11개월이 지났어도 "Y"는 2를 돌려줍니다. 아직 3년째 해가 다 지나지 않았기 때문입니다. 나이를 셀 때 우리가 "만 나이"를 계산하는 방식과 정확히 같습니다.
실전 예시 1 · 생년월일로 만 나이 구하기
A2 셀에 생년월일이 들어 있다고 가정하겠습니다. 오늘 기준 만 나이는 이렇게 구합니다.
=DATEDIF(A2, TODAY(), "Y")
여기서 TODAY()는 오늘 날짜를 자동으로 넣어 주는 함수입니다. 파일을 열 때마다 그날의 날짜로 갱신되기 때문에, 한 번 수식을 걸어 두면 내년에 파일을 열어도 나이가 자동으로 한 살 올라가 있습니다. 명단 관리 파일에 특히 유용합니다.
실전 예시 2 · 입사일로 근속연수 구하기
근속연수도 원리가 똑같습니다. B2 셀에 입사일이 있다면 다음과 같이 씁니다.
=DATEDIF(B2, TODAY(), "Y")
앞서 이야기한 인사 서류 문제를 이 수식 하나로 다시 정리하니, 30명분이 그야말로 순식간에 끝났습니다. 한 번 검증해 둔 수식은 사람처럼 실수하지 않는다는 점이 가장 든든했습니다.
실전 예시 3 · D-day(남은 날짜) 구하기
목표일까지 며칠 남았는지 구하는 방법은 두 가지가 있습니다. C2 셀에 목표일이 들어 있다고 하겠습니다.
방법 1) =C2 - TODAY()
방법 2) =DATEDIF(TODAY(), C2, "D")
두 방법의 결과는 대부분 같지만 성격이 다릅니다. 방법 1(뺄셈)은 목표일이 오늘보다 지났으면 음수(-3처럼)를 그대로 보여 줍니다. 이미 지난 날짜인지 남은 날짜인지 부호로 바로 알 수 있어 편합니다. 반면 방법 2(DATEDIF)는 시작일이 종료일보다 늦어지는 순간 오류가 납니다. 즉 D-day가 이미 지나 버렸다면 방법 1이 안전합니다. 앞으로 남은 날만 다룬다면 어느 쪽을 써도 무방합니다.
"몇 년 몇 개월 며칠" 형태로 세분화하기
근속 기간을 "3년"이 아니라 "3년 2개월 15일"처럼 자세히 보여 주고 싶을 때가 있습니다. 이때 두 가지 추가 단위를 씁니다.
- "YM" : 전체 햇수를 뺀 나머지 개월수(0~11 사이 값)
- "MD" : 전체 개월수를 뺀 나머지 일수
이 셋을 이어 붙이면 원하는 문장이 완성됩니다. B2에 입사일이 있을 때 예시입니다.
=DATEDIF(B2,TODAY(),"Y")&"년 "&DATEDIF(B2,TODAY(),"YM")&"개월 "&DATEDIF(B2,TODAY(),"MD")&"일"
결과는 3년 2개월 15일처럼 한 셀에 깔끔하게 표시됩니다. 여기서 &(앰퍼샌드)는 여러 값을 하나의 문장으로 이어 붙이는 연결 연산자입니다.
★ 자동완성이 안 떠도 당황하지 마세요
DATEDIF를 처음 쓰는 분들이 가장 많이 겪는 혼란이 여기 있습니다. 셀에 =DAT까지 입력하면 보통 DATE, DATEVALUE 같은 함수는 목록에 뜨는데, DATEDIF는 자동완성 목록에도, 함수 마법사(fx) 목록에도 나타나지 않습니다. 그래서 "이 함수가 없어진 건가?" 하고 놀라는 경우가 많습니다.
이유는 DATEDIF가 엑셀의 이른바 '숨은 함수'이기 때문입니다. 예전 로터스 1-2-3와의 호환을 위해 남겨 둔 함수라 공식 목록에서는 빠져 있지만, 기능 자체는 최신 엑셀(Microsoft 365, Excel 2021 등)과 구글 시트에서 모두 정상 작동합니다. 목록에 안 뜬다고 없는 게 아니니, 함수 이름 전체를 직접 타이핑하면 그대로 계산됩니다. 처음엔 저도 오타를 낸 줄 알고 몇 번을 다시 쳤는데, 알고 보니 원래 그런 함수였습니다.
실무에서 꼭 알아 둘 주의점
- 시작일 > 종료일이면 오류 : 시작일이 종료일보다 늦으면 #NUM! 오류가 납니다. 두 인수의 순서를 항상 먼저 확인하세요.
- 날짜가 텍스트면 계산 안 됨 : "2020.03.01"처럼 마침표로 입력하면 텍스트로 인식되어 #VALUE! 오류가 날 수 있습니다. 날짜는 2020-03-01 형식으로 넣어 셀 우측 정렬(날짜값 인식)되는지 확인하세요.
- "MD"는 상황에 따라 부정확 : 마이크로소프트도 "MD" 단위는 드물게 음수나 잘못된 값이 나올 수 있다고 안내합니다. 정밀한 일수 표기가 중요하다면 결과를 한 번 검산하는 습관이 좋습니다.
- 단위는 대소문자 구분 없음 : "Y"든 "y"든 동일하게 작동하지만, 협업 파일에서는 대문자로 통일하는 편이 읽기 편합니다.
날짜 계산은 자주 쓰면서도 실수하기 딱 좋은 작업입니다. DATEDIF 하나만 손에 익혀 두면 나이, 근속, 카운트다운을 매번 정확하게, 그것도 자동으로 갱신되게 관리할 수 있습니다. 오늘 만든 명단 파일부터 이 수식을 걸어 두시면 내년에 열 때 그 편리함을 확실히 느끼실 겁니다.