엑셀 날짜 계산

핵심 요약
  • 두 날짜 사이 일수는 단순 뺄셈으로 충분하고, 결과 셀이 날짜 형식으로 나오면 일반 형식으로 바꿔야 숫자가 보인다.
  • 근무일수는 NETWORKDAYS로 주말을 빼고, 공휴일 목록을 넘기면 명절·대체공휴일까지 제외할 수 있다.
  • 만 나이·근속연수는 DATEDIF의 "Y", "M", "D" 단위로 계산하는데, 이 함수는 자동완성에 안 떠서 직접 타이핑해야 한다.
  • 날짜가 텍스트로 들어오면 계산이 깨지므로 DATEVALUE나 형식 변환이 먼저다.

두 날짜 사이 일수: 그냥 빼면 된다

의외로 많이 헷갈리는 부분인데, 두 날짜의 차이는 함수 없이 뺄셈으로 나온다. A1에 입사일, B1에 오늘 날짜가 있다면 =B1-A1이 전부다. 엑셀 내부에서 날짜는 1900년 1월 1일을 1로 두는 일련번호라서, 빼면 일수가 떨어진다. 다만 결과 셀이 날짜 서식을 물려받아 "1900-02-15" 같은 이상한 값으로 보일 때가 있다. 이건 계산이 틀린 게 아니라 표시 형식 문제다. 셀 서식을 일반 또는 숫자로 바꾸면 정상적인 숫자가 나온다.

DATEDIF로 만 나이와 근속연수

년·월 단위로 차이를 보려면 DATEDIF가 편하다. 형식은 =DATEDIF(시작일, 종료일, "단위"). "Y"는 만으로 채운 햇수, "M"은 개월 수, "D"는 일수다. 만 나이는 =DATEDIF(생년월일, TODAY(), "Y")로 구한다. 근속 기간을 "3년 5개월"처럼 보고 싶다면 "Y"로 연수를, "YM"으로 1년 미만의 남은 개월을 따로 뽑아 합치는 식으로 쓴다. 주의할 점이 둘 있다. 시작일이 종료일보다 늦으면 오류가 나고, "MD" 단위는 월말 처리에서 가끔 음수나 이상한 값을 내는 것으로 알려져 있어 정밀한 일수가 필요하면 권하지 않는다.

단위의미예시 결과
"Y"채운 햇수3
"M"전체 개월 수41
"YM"연 제외 남은 개월5

NETWORKDAYS로 근무일수

주말을 빼고 실제 일한 날만 세려면 =NETWORKDAYS(시작일, 종료일, [공휴일])를 쓴다. 토·일을 자동으로 제외하고, 세 번째 인수에 공휴일이 적힌 범위를 넘기면 그 날짜들도 빠진다. 한국은 설·추석 연휴와 대체공휴일이 매년 달라서, 공휴일 셀 목록을 따로 만들어 참조하는 편이 안전하다. 주말이 토·일이 아닌 경우, 예를 들어 일요일만 쉬는 사업장이라면 NETWORKDAYS.INTL로 주말 패턴을 지정할 수 있다.

텍스트로 들어온 날짜 처리

외부에서 붙여넣은 날짜는 겉보기엔 날짜인데 실제로는 텍스트인 경우가 많다. 이러면 뺄셈이나 DATEDIF가 #VALUE! 오류를 낸다. 셀을 클릭했을 때 왼쪽 정렬이면 텍스트일 가능성이 높다. DATEVALUE로 변환하거나, 데이터 탭의 텍스트 나누기로 날짜 형식을 지정하면 풀린다. 연봉이나 급여 관련 자료를 다루다 보면 이런 형식 문제를 자주 만나는데, 계산 자체보다 데이터 정리에 시간이 더 걸리기도 한다. 실수령액 같은 금액 계산은 연봉 실수령액 도구로 따로 확인하는 편이 빠를 때가 있고, 퇴사를 앞뒀다면 퇴직금 계산도 함께 살펴두면 좋다.

자주 만나는 오류 정리

DATEDIF가 함수 목록에 안 보인다고 없는 함수로 오해하는 경우가 있다. 호환성을 위해 남겨둔 함수라 자동완성에 안 뜰 뿐, 정상 작동한다. 그리고 1900년 윤년 버그 때문에 아주 오래전 날짜는 하루 어긋날 수 있는데, 일상적인 근무일수 계산에서는 거의 문제되지 않는다. 결과가 음수로 나오면 시작일과 종료일 순서가 바뀐 건 아닌지 먼저 확인해보자.

결론

날짜 계산은 함수가 어렵다기보다 형식과 순서에서 막히는 일이 대부분이다. 단순 일수는 뺄셈, 햇수·개월은 DATEDIF, 주말 뺀 근무일은 NETWORKDAYS, 이 세 갈래만 기억하면 웬만한 계산은 해결된다. 오류가 날 때는 날짜가 진짜 날짜인지부터 점검하는 게 빠른 길이다.