매달 돌아오는 결제일이나 계약 만료일을 일일이 달력을 보며 계산하다 보면 어느새 머릿속이 복잡해지곤 하죠. 특히 2026년처럼 업무량이 몰리는 시기에는 단순한 날짜 계산 실수 하나가 큰 사고로 이어질 수 있어 늘 긴장하게 되더라고요. 이런 번거로움을 한 번에 해결해 주는 도구가 바로 엑셀의 날짜 함수들인데, 제대로 활용만 해도 퇴근 시간이 획기적으로 빨라질 거예요.
기준 날짜를 자유자재로 옮기는 EDATE 함수의 원리
업무를 하다 보면 특정 날짜로부터 정확히 몇 달 뒤의 날짜를 구해야 하는 상황이 정말 많습니다. 이때 EDATE 함수를 사용하면 복잡한 연도나 월 계산 없이 아주 간단하게 결과값을 얻을 수 있죠. 단순히 시작 날짜와 이동하고 싶은 개월 수만 입력하면 엑셀이 알아서 계산해 주거든요.
문법은 매우 단순해서 =EDATE(시작날짜, 개월수) 형태로 작성하면 끝납니다. 만약 미래의 날짜가 아니라 과거의 날짜를 찾고 싶다면 개월 수 자리에 마이너스(-) 기호를 붙여 음수를 입력하면 되더라고요. 이렇게 하면 6개월 전의 계약 시점이나 1년 전의 데이터 기준일을 순식간에 찾아낼 수 있습니다.
시작 날짜 선택
기준이 되는 날짜 셀을 클릭하거나 직접 입력합니다
개월 수 지정
더하거나 빼고 싶은 개월 수를 숫자로 입력합니다
결과 확인
반환된 직렬 번호를 [날짜] 형식으로 변경하여 확인합니다
사실 저도 예전에는 날짜를 더할 때 그냥 30일을 곱해서 더하곤 했는데요. 그러다 보니 월마다 다른 일수 때문에 날짜가 꼬이는 바람에 정말 당황했던 기억이 나네요. EDATE는 이런 문제를 원천적으로 차단하며, 특히 2월 29일 같은 리스 연도 계산에도 자동으로 대응한다는 점이 정말 편리하더라고요.
이 함수는 엑셀의 모든 버전에서 지원되므로 구형 버전을 사용하는 동료와 파일을 공유해도 문제가 없겠죠? 다만 결과값이 45678 같은 숫자로 나올 때가 있는데, 이는 엑셀이 날짜를 직렬 번호로 인식하기 때문입니다. 당황하지 말고 셀 서식을 ‘날짜’로 바꿔주기만 하면 우리가 원하는 날짜 형태가 나타납니다.
결국 엑셀 EDATE WEEKDAY 조합을 익히는 것은 데이터 관리의 정확도를 높이는 가장 빠른 길이라고 생각합니다. 단순 반복 작업에서 벗어나 더 가치 있는 분석 업무에 집중하고 싶다면 이 함수의 작동 원리를 완벽히 이해하는 것이 좋겠네요.
요일의 숫자를 반환하는 WEEKDAY 함수의 활용법
날짜가 나왔다면 그다음으로 궁금한 것은 “그날이 무슨 요일인가” 하는 점일 거예요. WEEKDAY 함수는 특정 날짜가 일주일 중 몇 번째 날인지를 숫자로 알려주는 역할을 합니다. 기본적으로는 일요일을 1로, 토요일을 7로 반환하는 구조를 가지고 있죠.
하지만 사람마다, 혹은 회사마다 월요일을 한 주의 시작으로 보는 기준이 다를 수 있잖아요? 그래서 이 함수에는 ‘mode’라는 파라미터가 존재합니다. mode 2를 설정하면 월요일이 1이 되고 일요일이 7이 되며, mode 3을 쓰면 월요일이 0부터 시작하게 되더라고요.
WEEKDAY 모드 설정
모드 1 (기본값)
일(1) ~ 토(7)
모드 2
월(1) ~ 일(7)
모드 3
월(0) ~ 일(6)
솔직히 처음 이 함수를 접했을 때는 “그냥 요일 이름이 나오면 편할 텐데 왜 굳이 숫자로 줄까” 싶어 조금 불편하게 느껴지기도 했습니다. 그런데 숫자로 반환되어야만 IF 함수나 VLOOKUP 같은 다른 함수와 결합해 조건부 서식을 걸거나 자동화 로직을 짤 수 있다는 점을 깨닫고 나서는 생각이 완전히 바뀌었죠.
만약 숫자가 아니라 “월요일”, “화요일” 같은 텍스트로 바로 보고 싶다면 TEXT 함수를 함께 사용해 보세요. =TEXT(셀주소, “dddd”)라고 입력하면 우리가 읽기 편한 요일명으로 즉시 변환됩니다. 엑셀 EDATE WEEKDAY 기능을 함께 쓰면 날짜 이동과 요일 확인을 동시에 처리할 수 있어 매우 효율적이겠죠?
또한 이 함수는 직렬 번호 기반으로 작동하기 때문에 계산 속도가 매우 빠르다는 장점이 있습니다. 수만 행의 데이터가 쌓인 시트에서도 요일 판별 작업을 순식간에 끝낼 수 있으니 대량의 스케줄을 관리하는 분들에게는 없어서는 안 될 도구라고 할 수 있겠네요.
업무 효율을 높이는 엑셀 EDATE WEEKDAY 실전 조합
두 함수를 각각 쓰는 것도 좋지만, 진짜 강력한 힘은 두 기능을 조합했을 때 나타납니다. 예를 들어, 매달 25일이 급여일인데 만약 그날이 주말이라면 금요일에 미리 지급해야 하는 회사 규정이 있다고 가정해 볼까요? 이때 IF 함수와 WEEKDAY를 섞어 쓰면 지급일을 자동으로 계산할 수 있습니다.
우선 EDATE로 이번 달 지급 예정일을 구한 뒤, 그 날짜의 WEEKDAY 값이 6(토)이나 7(일)인지 판별하는 식을 짜는 것이죠. 만약 주말이라면 날짜에서 1일 혹은 2일을 빼도록 설정하면 됩니다. 이렇게 하면 매달 달력을 확인하며 수동으로 날짜를 수정할 필요가 전혀 없더라고요.
주말 판별 공식
=IF(WEEKDAY(A1)>5, “주말”, “평일”)
계약 관리 업무에서도 이 조합은 빛을 발합니다. 1년 단위 계약의 만료일을 EDATE로 계산하고, 그 만료일이 공휴일이나 주말인지 WEEKDAY로 체크하여 안내 메일 발송일을 앞당기는 로직을 만들 수 있거든요. 이런 자동화 시스템을 한 번 구축해두면 업무 누락으로 인한 실수를 획기적으로 줄일 수 있습니다.
피벗 테이블을 활용하는 분들이라면 WEEKDAY를 이용한 전처리를 강력히 추천합니다. 원본 데이터에 ‘요일’ 열을 추가해두면, 어느 요일에 매출이 가장 많이 발생하는지, 혹은 어떤 요일에 고객 문의가 집중되는지를 한눈에 분석할 수 있더라고요. 단순한 날짜 데이터가 의미 있는 인사이트로 변하는 순간이죠.
물론 처음에는 수식이 복잡해 보일 수 있지만, 한 번만 제대로 짜두면 복사해서 붙여넣기만 하면 끝납니다. 엑셀 EDATE WEEKDAY 활용 능력이 곧 업무 숙련도로 평가받는 시대인 만큼, 실무 시나리오를 직접 만들어 연습해 보시길 바랍니다.
날짜 계산 시 반드시 주의해야 할 함정과 오해
함수가 만능은 아니기에 사용 시 주의해야 할 점이 몇 가지 있습니다. 가장 흔한 실수는 WEEKDAY 함수가 날짜를 더하거나 빼주는 계산 함수라고 생각하는 것입니다. 이 함수는 오직 “그날이 무슨 요일인가”라는 상태값만 반환할 뿐, “다음 금요일까지 며칠 남았나”를 계산해주지는 않거든요.
EDATE 함수에서도 주의할 점이 있습니다. 바로 ‘말일’ 처리 방식인데요. 예를 들어 1월 31일에서 한 달 뒤를 계산하면 2월 31일이 존재하지 않기 때문에 엑셀은 자동으로 2월의 마지막 날(28일 또는 29일)로 날짜를 조정합니다. 이 결과가 의도한 바와 맞는지 반드시 확인해야 하더라고요.
EDATE 방식
• 말일 자동 조정
상대적 개월 이동 vs DATE 방식
• 연/월/일 개별 지정
• 절대적 날짜 생성
가끔 날짜가 45678처럼 숫자로 나와서 “함수가 고장 났다”고 생각하시는 분들이 계시더라고요. 하지만 앞서 말씀드렸듯 이는 엑셀의 기본 설계 방식인 직렬 번호 체계 때문입니다. 1900년 1월 1일을 기준으로 며칠이 지났는지를 숫자로 표시하는 것이니, 셀 서식만 바꾸면 해결될 문제입니다.
또한 구글 스프레드시트나 파이썬 같은 다른 도구에서도 비슷한 이름의 함수를 제공하지만, 세부적인 파라미터나 기본값이 다를 수 있습니다. 특히 WEEKDAY의 모드 설정값은 프로그램마다 차이가 있을 수 있으니, 툴을 옮겨 사용할 때는 반드시 공식 문서를 다시 확인하시길 권장합니다.
이런 세세한 차이를 모르고 그냥 사용했다가는 정산 금액이 틀리거나 마감 기한을 놓치는 대참사가 일어날 수 있겠죠? 엑셀 EDATE WEEKDAY 기능을 사용할 때는 항상 결과값을 샘플 데이터로 검증하는 습관을 들이는 것이 가장 안전합니다.
실무 시나리오별 최적의 함수 적용 사례
이제 구체적으로 어떤 상황에서 어떤 함수를 써야 효율적인지 표로 정리해 보겠습니다. 상황에 따라 단독으로 쓸지, 혹은 다른 함수와 조합할지가 결정되기 때문이죠. 아래 표를 참고하여 자신의 업무에 적용해 보세요.
| 업무 상황 | 권장 함수 조합 | 기대 결과 |
|---|---|---|
| 정기 구독 결제일 계산 | EDATE | 매월 동일한 날짜의 결제일 자동 생성 |
| 주말 제외 근무일 계산 | WEEKDAY + IF | 토/일요일을 제외한 실제 업무일 판별 |
| 계약 만료 알림 설정 | EDATE + TEXT | 만료일 계산 및 요일 텍스트 표시 |
| 요일별 매출 분석 | WEEKDAY + 피벗테이블 | 요일별 매출 트렌드 및 패턴 파악 |
예를 들어 인사팀에서 직원들의 입사 기념일을 관리한다면 EDATE를 사용해 매년 돌아오는 날짜를 리스트업 할 수 있겠네요. 여기에 WEEKDAY를 더해 해당 날짜가 주말이라면 금요일에 축하 파티를 열도록 일정을 조정하는 식의 응용이 가능합니다.
재무팀의 경우 할부금 납입일이나 이자 지급일을 관리할 때 EDATE가 필수적입니다. 수백 명의 고객사마다 계약 시점이 다른데 이를 일일이 계산하는 것은 불가능에 가깝죠. 함수 하나로 수천 개의 행을 한 번에 처리할 수 있다는 점이 정말 매력적이지 않나요?
사실 저도 처음에는 이런 자동화가 너무 복잡하게 느껴져서 그냥 수동으로 입력하곤 했습니다. 하지만 데이터 양이 많아질수록 수동 입력의 한계를 뼈저리게 느꼈고, 결국 엑셀 EDATE WEEKDAY 조합을 공부하게 되었는데 지금은 왜 진작 안 했나 싶더라고요.
단순히 함수를 외우는 것보다 “어떤 문제를 해결하고 싶은가”를 먼저 정의하는 것이 중요합니다. 그 후 그 문제에 맞는 함수 조합을 찾아 적용하다 보면 어느새 엑셀 전문가라는 소리를 듣게 되실 거예요.
자주 묻는 질문 (FAQ)
Q. EDATE와 DATE 함수의 결정적인 차이점은 무엇인가요?
A. DATE 함수는 연, 월, 일을 각각의 인수로 받아 새로운 날짜를 생성하는 방식입니다. 반면 EDATE는 특정 기준일로부터 ‘몇 개월’이라는 상대적인 간격을 이동시키는 방식이죠. 따라서 기준일로부터 3개월 뒤, 6개월 전과 같은 상대적 날짜를 구할 때는 EDATE가 훨씬 빠르고 편리합니다.
Q. WEEKDAY 함수만으로 “다음 주 금요일” 날짜를 찾을 수 있을까요?
A. 아쉽게도 WEEKDAY 단독으로는 불가능합니다. WEEKDAY는 현재 날짜의 요일 번호만 알려주는 함수이기 때문이죠. 다음 금요일을 찾으려면 현재 요일을 구한 뒤, 금요일(번호 6)까지 며칠이 남았는지 계산하여 더해주는 추가적인 수식이나 IF, MATCH 함수와의 조합이 필요합니다.
Q. 구글 스프레드시트에서도 엑셀과 똑같이 작동하나요?
A. 기본적인 함수명과 로직은 동일합니다. 하지만 프로그램마다 날짜를 처리하는 내부 방식이나 mode 파라미터의 기본 설정값이 미세하게 다를 수 있습니다. 따라서 엑셀에서 짠 수식을 그대로 복사해 넣기보다는, 구글 시트의 도움말을 통해 인수가 동일하게 작동하는지 한 번 더 확인하시는 것이 좋습니다.
Q. EDATE 사용 시 결과가 숫자로 나오는데 오류인가요?
A. 전혀 오류가 아닙니다. 엑셀은 날짜를 1900년 1월 1일부터 경과한 일수(직렬 번호)로 저장하기 때문이죠. 상단 메뉴의 [홈] 탭에서 표시 형식을 ‘일반’이나 ‘숫자’에서 ‘날짜’로 변경해 주시면 우리가 아는 날짜 형태로 바로 바뀝니다.
Q. 1월 31일에서 EDATE로 1개월을 더하면 왜 2월 28일이 되나요?
A. 2월에는 31일이 존재하지 않기 때문입니다. EDATE 함수는 이동한 달에 해당 날짜가 없을 경우, 그 달의 마지막 날을 반환하도록 설계되어 있습니다. 이는 날짜 계산의 오류를 막기 위한 엑셀의 자동 보정 기능이라고 이해하시면 됩니다.
함수 몇 개만 익혔을 뿐인데 업무 시간이 줄어드는 경험을 하면 엑셀 공부가 정말 즐거워지더라고요. 여러분도 오늘 배운 내용들을 실무 파일에 직접 적용해 보시면서 나만의 자동화 템플릿을 만들어 보시길 바랍니다.