엑셀 날짜 계산, 45000 같은 숫자로 보일 때부터 풀어요
![]()
안녕하세요, 깅글렛이에요.
날짜 셀을 계산하려다가 갑자기 45000 같은 숫자가 뜨거나, 두 날짜를 뺐더니 2083년 같은 엉뚱한 날짜가 나온 적 있으시죠? 저도 근태표 정리하다가 처음 그걸 보고 파일이 깨진 줄 알았거든요. 이유는 하나예요. 엑셀에서 날짜는 사실 숫자거든요. 이 원리만 잡으면 근무일수·D-day·나이·근속연수 계산이 전부 술술 풀려요.
근태표·계약서·정산 날짜를 매번 손으로 세던 분이라면, 오늘 이 글로 함수 몇 개랑 서식 규칙만 익혀보세요.
엑셀에서 날짜는 사실 “숫자”예요
먼저 이거 하나만 이해하면 나머지가 다 쉬워져요. 엑셀은 날짜를 우리가 보는 “2026-07-02” 글자로 저장하지 않아요. 속으로는 큰 정수 하나로 갖고 있거든요.
기준은 1900년 1월 1일이에요. 그날이 1이고, 하루 지날 때마다 1씩 커져요. 그래서 2026년 7월쯤이면 4만 6천대의 큰 정수가 돼요. 화면에 날짜처럼 보이는 건 그 숫자를 ’날짜 서식’으로 표시했기 때문이에요. 실제 셀 값은 숫자라는 거죠.
이 원리가 왜 중요하냐면, 날짜가 숫자니까 그냥 빼면 며칠 차이인지가 나오거든요. 2026-07-10에서 2026-07-02를 빼면 8, 딱 8일이 나와요. 함수도 필요 없어요.
시간도 똑같은 논리예요. 시간은 하루(=1)를 쪼갠 소수로 저장돼요. 정오가 0.5, 오전 6시가 0.25 이런 식이에요. 그래서 시간끼리 빼면 소수가 나오고, 거기에 시간 서식을 적용하면 “9:15” 같은 경과 시간이 돼요.

날짜가 숫자로, 또는 ####로 보이는 이유
원리를 알았으니 가장 당황스러운 두 증상부터 잡아볼게요.
날짜 자리에 45000 같은 숫자만 보일 때가 있어요. 이건 셀 서식이 ’날짜’에서 ’일반’이나 ’숫자’로 풀린 거예요. 날짜의 실제 값(그 큰 정수)이 그대로 드러난 상태죠. Ctrl+1을 눌러 셀 서식 창을 열고, 표시 형식에서 ’날짜’를 다시 골라주면 원래 날짜로 돌아와요.
반대 사고도 있어요. 두 날짜를 뺐는데 결과가 2083-03-16 같은 이상한 날짜로 나오는 경우요. 값이 틀린 게 아니에요. 결과 셀이 위 날짜 셀의 ’날짜 서식’을 물려받아서, 일수(예: 45000)를 다시 날짜로 그려낸 것뿐이에요. 결과 셀만 셀 서식에서 ’숫자’로 바꿔주면 제대로 된 일수가 보여요.
📖 셀 서식(Ctrl+1)이란? 같은 셀 값을 화면에 어떻게 보여줄지만 바꾸는 기능이에요. 값 자체(일련번호)는 안 건드려요.
마지막으로 ####(우물 정 네 개)로 보이는 것도 놀라지 마세요. 이건 데이터가 깨진 게 아니라 열 너비가 좁아서 날짜나 숫자가 칸에 안 들어가는 것뿐이에요. 열 경계선을 더블클릭하거나 조금 넓히면 바로 정상으로 보여요.


근속연수·만 나이는 DATEDIF로, 근데 목록에 안 떠요
두 날짜 사이 개월수나 연수를 구할 땐 DATEDIF를 써요. 근속연수, 만 나이 계산의 표준 도구예요. 그런데 여기 함정이 하나 있어요.
DATEDIF는 함수 마법사나 자동완성 목록에 안 나와요. =DA...까지 쳐도 힌트가 안 뜨거든요. 원래 옛날 로터스 1-2-3라는 프로그램과 호환하려고 남겨둔 ’숨은 함수’라 그래요. 그러니 “이런 함수 없는데?” 하지 말고 철자를 직접 다 타이핑하면 돼요. 이걸 몰라서 함수가 없는 줄 아는 분이 정말 많아요.
문법은 =DATEDIF(시작일, 종료일, "단위코드") 예요. 세 번째 자리의 단위코드에 따라 연·월·일 중 뭘 뽑을지 골라요.
"y"= 꽉 찬 연수 (근속 3년)"m"= 총 개월수 (총 40개월)"d"= 총 일수 (856일)"ym"= 연수를 뺀 나머지 개월 (3년 6개월의 그 6개월)"md"= 연·월을 뺀 나머지 일 (마이크로소프트가 부정확할 수 있다고 권장 안 하니 주의)
실제로 근속연수를 “3년 6개월”처럼 예쁘게 뽑으려면 두 개를 이어 붙여요. =DATEDIF(입사일, TODAY(), "y")&"년 "&DATEDIF(입사일, TODAY(), "ym")&"개월" 이렇게요. 만 나이는 더 간단해서 =DATEDIF(생년월일, TODAY(), "y") 하나면 나와요.
한 가지만 조심하세요. 시작일이 종료일보다 뒤면 #NUM! 오류가 나요. 날짜 순서만 맞춰주면 돼요.
✍️ 저는 연말 인사 자료 만들 때 팀원 근속연수를 이걸로 한 번에 돌려요. 처음엔 DATEDIF가 자동완성에 안 떠서 오타 난 줄 알고 몇 번을 다시 쳤는데, 숨은 함수라는 걸 알고 나선 그냥 통째로 외워서 써요.


주말·공휴일 뺀 실근무일수는 NETWORKDAYS로
“이번 프로젝트 실제 근무일이 며칠이냐” 같은 계산엔 단순 빼기가 안 맞아요. 토요일·일요일이 다 들어가 버리거든요. 이럴 때 NETWORKDAYS를 써요.
문법은 =NETWORKDAYS(시작일, 종료일, [공휴일범위]) 예요. 토요일과 일요일을 자동으로 빼고 순수 평일 수만 세줘요. 게다가 양쪽 끝 날짜를 모두 포함해서 계산하니 뒤에 나올 +1 걱정도 없어요.
공휴일까지 빼고 싶으면 세 번째 자리에 공휴일 날짜를 적어둔 셀 범위를 넘기면 돼요. 예를 들어 F2부터 F5까지에 광복절·추석 날짜를 적어뒀다면 =NETWORKDAYS(B2, C2, $F$2:$F$5) 이렇게요.
여기서 실무 핵심이 하나 있어요. 엑셀은 한국 공휴일을 자동으로 몰라요. 그러니 시트 한쪽에 그해 공휴일 날짜를 세로로 직접 적어두고, 그 범위를 지정해줘야 해요. 이 ’공휴일 목록 만들기’가 근무일수 계산의 진짜 실무 포인트예요.

토요일 근무 회사는 NETWORKDAYS.INTL 주말 코드로
기본 NETWORKDAYS는 토·일을 쉰다고 고정돼 있어요. 그런데 토요일도 근무하는 회사, 그러니까 일요일만 쉬는 곳이라면 토요일이 근무일에서 빠져버려 곤란하죠. 이땐 NETWORKDAYS.INTL을 써요.
문법은 거의 같은데 세 번째 자리에 주말코드가 들어가요. =NETWORKDAYS.INTL(시작일, 종료일, [주말코드], [공휴일범위]) 예요. 이 코드로 어떤 요일이 쉬는지를 직접 지정하는 거예요.
- 코드 1(기본) = 토·일 둘 다 휴무
- 코드 11 = 일요일만 휴무
- 코드 12 = 월요일만, 13 = 화요일만 … 이런 식으로 17까지 있어요
한국에서 토요일도 일하는 회사는 코드 11이 정답이에요. =NETWORKDAYS.INTL(B2, C2, 11, $F$2:$F$5) 하면 토요일 근무까지 일수에 포함돼요. 정리하면, 평범한 주 5일 회사는 NETWORKDAYS, 토요일 근무나 특수 근무는 NETWORKDAYS.INTL이에요.

N개월 후·월말·D-day는 함수 하나씩이면 돼요
계약이나 정산 날짜 계산도 자주 나오죠. 상황별로 함수가 딱 하나씩 있어요.
정확히 N개월 뒤 같은 날짜는 EDATE예요. =EDATE(계약일, 12) 하면 1년 뒤 만기일이 나와요. 계약 만기나 재계약일 잡을 때 써요. 음수를 넣으면 N개월 전으로도 가고요.
그 달의 마지막 날은 EOMONTH예요. 이름 그대로 End Of Month죠. =EOMONTH(기준일, 3) 하면 3개월 뒤 그 달 말일이 나와요. 월말 마감이나 정산 기준일에 딱이에요. 개월수 자리에 0을 넣으면 이번 달 말일이 나와요.
오늘 기준 D-day는 TODAY로 잡아요. TODAY()는 오늘 날짜를 넣어주는데, 파일을 열 때마다 자동으로 갱신돼요. 그래서 =마감일 - TODAY() 하면 마감까지 남은 날수가 나오고, 매일 열 때마다 알아서 줄어들어요. 이번 달 말까지 며칠 남았나 궁금하면 =EOMONTH(TODAY(), 0) - TODAY() 하면 되고요.
한 가지만요. TODAY()는 날마다 값이 바뀌니까, 특정 날짜를 고정해두고 싶으면 그 셀을 복사해서 ’값 붙여넣기’로 박아두거나 날짜를 직접 입력하면 돼요.

시간 합계가 24시간을 넘으면 서식 [h]:mm이에요
시간 계산도 원리는 날짜랑 같아요. 퇴근 시각에서 출근 시각을 빼면 근무시간이 나와요. =E2 - D2(E2가 18:15, D2가 09:00이면 9:15) 이렇게요. 결과가 0.385 같은 소수로 나오면 셀 서식을 ’시간’으로 바꿔주면 돼요.
근데 여기 정말 잘 걸리는 함정이 있어요. 일주일 근무시간을 SUM으로 다 더하면 40시간이 넘는데, 결과가 “16:30”처럼 이상하게 나와요. 값이 틀린 게 아니에요. 기본 시간 서식(h:mm)이 24시간마다 0으로 돌아가버려서 그래요. 40시간에서 24를 빼고 남은 16시간만 보여준 거죠.
해결은 서식 하나로 끝나요. 합계 셀 서식을 사용자 지정에서 [h]:mm 으로 바꿔주면 “40:30”처럼 24시간을 넘겨서 누적으로 보여줘요. 대괄호 [ ]가 “시간을 24로 나누지 말고 계속 쌓아라”는 뜻이거든요. 분을 쌓으려면 [m], 초는 [s]도 같은 원리예요.
야근처럼 자정을 넘기는 시간은 단순 빼기가 음수로 나와요. 이땐 =MOD(퇴근-출근, 1)로 감싸주거나, 날짜까지 같이 입력해서 계산하면 제대로 나와요.
![역할=쇼피스 | 사용자 지정 서식 [h]:mm 적용 전후 비교. 위쪽 before “16:30”(잘못 잘림, 빨간 X), 아래쪽 after “40:30”(정상, 초록 체크). 가운데 서식 입력창에 [h]:mm 타이핑 장면](/images/%EC%97%91%EC%85%80-%EB%82%A0%EC%A7%9C%EA%B3%84%EC%82%B0/body-9.webp)
계산이 하루 모자랄 때, +1이 필요한 곳과 아닌 곳
마지막으로 제일 헷갈리는 하루 차이 문제예요. 실제로 검색도 많이 되는 통증이더라고요.
두 날짜를 빼면 그건 사이 간격이라 양쪽 끝을 다 세지 않아요. 6월 1일부터 6월 3일까지를 빼면 3이 아니라 2가 나와요. 그래서 첫날과 마지막날을 모두 세야 하는 계산, 예를 들어 며칠 근무했나·며칠 체류했나를 구할 땐 끝에 +1을 해요. =종료일 - 시작일 + 1 이렇게요.
반대로 앞에서 본 NETWORKDAYS는 이미 양쪽 끝을 포함해서 세니까 +1을 하면 안 돼요. 하면 하루가 더 붙어버려요. 그러니 “+1이 필요한 계산인지 아닌지”를 구분하는 게 핵심이에요. 단순 빼기는 +1, NETWORKDAYS는 그대로. 이 둘만 기억하세요.

텍스트로 저장된 가짜 날짜 걸러내기
이건 다른 프로그램이나 웹, CSV에서 데이터를 붙여넣을 때 자주 겪는 문제라 따로 짚을게요.
날짜처럼 보이는데 빼기나 DATEDIF가 오류 나거나 이상한 값이 나온다면, 그건 날짜가 아니라 글자(텍스트)로 저장된 가짜 날짜일 수 있어요. 판별법은 간단해요. 엑셀에서 진짜 날짜·숫자는 셀 오른쪽에 붙는데, 이 값이 셀 왼쪽에 붙어 있으면 텍스트일 가능성이 높아요.
해결법은 두 가지예요. 한 셀만 고치면 =DATEVALUE(텍스트날짜셀)로 진짜 날짜(일련번호)로 바꿔주면 돼요. 여러 개를 한 번에 고치려면 그 범위를 선택하고 [데이터] 탭의 ’텍스트 나누기’로 들어가서, 마지막 단계에서 날짜(YMD)를 지정하면 한꺼번에 진짜 날짜로 바뀌어요. 대량 교정엔 텍스트 나누기가 제일 편해요.
![역할=흐름 | 텍스트 날짜 판별·교정 UI 목업. 왼쪽 정렬된 “2026-01-05”(가짜, 왼쪽 붙음 표시) → [데이터>텍스트 나누기] 마지막 단계 ‘날짜(YMD)’ 선택 화면 → 오른쪽 정렬된 진짜 날짜로 변환. “왼쪽에 붙어 있으면 텍스트 날짜 의심” 콜아웃](/images/%EC%97%91%EC%85%80-%EB%82%A0%EC%A7%9C%EA%B3%84%EC%82%B0/body-10.webp)
함수 한 장 요약 치트시트
여기까지 온 김에 “무엇을 계산할 때 어떤 함수”인지 한 장으로 정리했어요. 저장해두고 필요할 때 꺼내 보세요.
- 두 날짜 사이 일수 → 그냥 빼기 (양끝 다 세려면 +1)
- 근속연수·만 나이 → DATEDIF (목록에 안 뜨니 직접 타이핑)
- 주말·공휴일 뺀 근무일 → NETWORKDAYS (토요일 근무면 .INTL 코드 11)
- N개월 후 같은 날짜 → EDATE
- 그 달 말일 → EOMONTH
- 오늘 기준 D-day → TODAY
- 24시간 넘는 시간 합계 → 서식 [h]:mm
![역할=요약 | 날짜 계산 결정 치트시트. “무엇을 계산?“에서 갈라지는 화살표 → 일수=빼기 / 근속·나이=DATEDIF / 근무일=NETWORKDAYS / N개월후=EDATE / 월말=EOMONTH / D-day=TODAY / 시간합계=[h]:mm. 한 장 요약 카드](/images/%EC%97%91%EC%85%80-%EB%82%A0%EC%A7%9C%EA%B3%84%EC%82%B0/body-12.webp)
깅글렛 한줄평
💬 날짜 계산이 자꾸 꼬였다면 십중팔구 “날짜는 숫자”라는 원리 하나를 몰라서예요. 오늘 함수 중에 본인 업무랑 가장 가까운 하나부터 셀에 직접 쳐보세요.
마무리
날짜 계산은 함수를 많이 외우는 게 아니라, “날짜는 숫자”라는 원리 하나에 서식만 챙기면 대부분 풀려요. 근태표든 계약서든, 손으로 세던 날짜부터 오늘 배운 함수로 바꿔보시면 확실히 편해질 거예요.
혹시 계산이 자꾸 안 맞으면 값보다 서식부터 의심해보세요. 여러분은 날짜 계산에서 어떤 게 제일 헷갈리셨나요?
※ 본 글은 2026년 7월 기준 엑셀·Microsoft 365 환경으로 작성했어요. NETWORKDAYS.INTL은 Excel 2010 이상에서 동작하고, 버전에 따라 화면 세부는 조금 다를 수 있어요.