엑셀 TODAY·DATEDIF 함수로 D-day 계산하기

셀 두 개로 끝내는 기본 수식

엑셀에서는 날짜도 숫자로 저장되므로 목표일 셀에서 오늘 날짜를 빼면 남은 일수가 바로 나옵니다. A2에 목표일 2027-01-01을 넣고 B2에 =A2-TODAY()를 입력하면 2026년 11월 12일 기준으로 50이 표시됩니다. TODAY()는 파일을 열 때마다 다시 계산되는 함수라서, 기준일을 고정하려면 별도 셀에 날짜를 적고 그 셀을 빼야 합니다.

표시를 D-50처럼 바꾸려면 =IF(B2>0,"D-"&B2,IF(B2=0,"D-day","D+"&ABS(B2)))를 씁니다. B2가 양수면 남은 날, 0이면 당일, 음수면 지난 날입니다. 셀 서식으로 "D-"를 붙이는 방법도 있지만, 조건에 따라 D-day와 D+를 함께 표시하려면 IF 문이 편합니다.

DATEDIF 함수

DATEDIF는 두 날짜 사이의 기간을 일·월·연 단위로 돌려주는 함수입니다. =DATEDIF(시작일,종료일,"D")는 일수, "M"은 개월 수, "Y"는 연수를 계산합니다. 예를 들어 =DATEDIF("2026-11-12","2027-01-01","D")는 50을 돌려줍니다. 종료일은 포함하지 않으므로, 시작일을 1일째로 세려면 결과에 1을 더해야 합니다.

이 함수는 과거 버전과의 호환을 위해 남아 있는 함수로, 최신 엑셀의 함수 목록에는 기본으로 나오지 않을 수 있습니다. 직접 입력하면 동작하지만, 시작일이 종료일보다 뒤이면 오류가 납니다. 개월 수를 셀 때는 "M"이 월별 일수를 반영하지 않고 완전한 달만 세므로, 1월 31일부터 2월 28일까지가 0개월로 나올 수 있습니다.

남은 일수에 색을 입히기

조건부 서식을 쓰면 남은 날에 따라 색이 바뀝니다. B2:B100을 선택하고 "수식을 사용하여 서식을 지정할 항목"에 =$B2<=7을 넣으면 7일 이하인 행만 강조할 수 있습니다. =$B2<0을 넣으면 지난 일정을 회색으로 표시할 수 있습니다. 서식 규칙은 위에서부터 적용되므로, 긴급 규칙을 목록 위쪽에 두어야 우선 적용됩니다.

이렇게 네 단계로 나누면 일정표를 볼 때 손이 먼저 가는 행이 생깁니다. 색만으로 구분하면 색을 구별하기 어려운 사람에게는 정보가 전달되지 않으므로, D-7 같은 문자를 함께 표시하는 것이 좋습니다.

엑셀 날짜 일련번호의 함정

엑셀은 1900년 1월 1일을 1로 두는 일련번호로 날짜를 저장합니다. 그런데 1900년은 윤년이 아닌데도 엑셀이 1900년 2월 29일을 존재하는 날짜처럼 처리하는 오래된 호환 문제가 있습니다. 그래서 1900년 3월 1일 이전 날짜를 다루면 실제 달력과 하루 차이가 생길 수 있습니다. 2026년이나 2027년처럼 현대 날짜를 계산할 때는 이 문제가 영향을 주지 않습니다.

날짜를 텍스트로 붙여 넣으면 계산이 되지 않고 왼쪽 정렬로 표시됩니다. 셀 서식을 날짜로 바꾸거나 DATEVALUE 함수로 변환해야 합니다. "2026.11.12"처럼 마침표를 쓴 형식은 지역 설정에 따라 인식되지 않을 수 있으므로, 연-월-일 형식으로 입력하는 편이 안전합니다.

구글 스프레드시트에서도 같은 방식

구글 스프레드시트도 날짜를 일련번호로 다루며 TODAY, DATEDIF, IF, ABS를 같은 방식으로 씁니다. 다만 스프레드시트의 날짜 기준일과 표시 형식이 엑셀과 조금 다를 수 있어, 파일을 주고받을 때 날짜가 하루 밀리지 않았는지 확인해야 합니다. 특히 1900년 이전 날짜를 다루는 문서는 두 프로그램의 결과가 다를 수 있습니다.

온라인에서 공유하는 표라면 TODAY()가 접속한 사람의 시간대에 따라 달라질 수 있습니다. 마감이 중요한 표는 오늘 날짜를 별도 셀에 고정하고, 그 셀만 매일 바꾸는 방식이 결과를 설명하기 쉽습니다.

마지막 확인: 2026-11-12

함께 쓰면 좋은 서비스