기술 가이드

Excel EOMONTH 함수 사용법 — 월말일 계산 가이드

8 min read 엑셀 업데이트됨 16 Sep 2025
Excel EOMONTH 함수 사용법 — 월말일 계산 가이드
Excel EOMONTH 함수 사용법 — 월말일 계산 가이드

Excel 표 위에 올려진 달력 이미지와 옆에 있는 Excel 로고

빠른 바로가기

  • EOMONTH 구문
  • 미래의 월말일 계산하기
  • 과거 월말일 계산하기
  • 장기(연 단위 포함) 월말일 계산하기
  • 현재 월의 월말일 계산하기
  • 월말일 시퀀스 생성하기
  • 자주 발생하는 문제와 해결법
  • 실무 체크리스트 및 테스트 케이스

EOMONTH의 핵심 개념

한 줄 정의: EOMONTH는 기준일에서 N개월 이동한 달의 마지막 날짜를 반환하는 함수입니다.

핵심 사고 모델: “달을 먼저 이동한 뒤, 그 달의 마지막 날로 점프한다.” 예를 들어 기준일이 2025-01-04이고 +3개월이면 2025-04-04로 이동한 뒤 2025-04-30을 반환합니다.

중요: EOMONTH는 날짜의 일(day) 값을 유지하려고 하지 않습니다. 항상 해당 월의 마지막 날짜를 반환합니다. “같은 일자 유지“가 필요하면 EDATE를 사용합니다.

EOMONTH 구문

=EOMONTH(a,b)
  • a: 시작일. 셀 참조, DATE 함수, 또는 TODAY() 같은 함수 결과를 넣을 수 있습니다.
  • b: 시작일 기준으로 이동할 개월 수. 양수는 미래, 음수는 과거, 0은 같은 달의 월말.

예시 표(설명용):

인수 a설명
=EOMONTH(A1,시작일이 셀 A1에 들어있음
=EOMONTH(DATE(2025,05,31),시작일을 2025년 5월 31일로 지정
=EOMONTH(TODAY(),시작일을 오늘 날짜로 지정

b 인수 예시:

인수 b설명
=EOMONTH(A1, 5)시작일 A1에서 5개월 앞으로 이동한 달의 말일 반환
=EOMONTH(A1, -5)시작일 A1에서 5개월 뒤로 이동한 달의 말일 반환
=EOMONTH(A1, 0)시작일이 속한 달의 말일 반환
=EOMONTH(A1, A2)A2에 있는 숫자만큼 앞으로 이동한 달의 말일 반환
=EOMONTH(A1, -A2)A2에 있는 숫자만큼 뒤로 이동한 달의 말일 반환

참고: EOMONTH의 결과는 날짜 직렬 번호(Excel 내부 숫자)로 반환됩니다. 표시 형식을 날짜로 설정해야 사람이 읽을 수 있는 날짜로 보입니다.

미래의 월말일 계산하기

실무 예: 건설 프로젝트 관리자이며 각 과제는 개월 단위로 소요되고, 마감일은 항상 월말이라고 가정합니다. 각 과제의 시작일과 기간(개월)이 주어졌을 때 마감 월말을 자동으로 계산하려면 EOMONTH를 사용합니다.

예시 절차(테이블이 Excel 표 형식으로 정리된 경우):

  1. E열(End date)에 아래 수식을 넣습니다.
=EOMONTH([@[Start date]],[@Months])
  1. 표(Excel Table)라면 첫 셀에 수식 입력 후 자동 채우기 됩니다. 일반 범위라면 채움 핸들을 사용해 아래로 드래그하세요.

실행 결과: 시작일이 2025-01-04이고 Months가 3이면 반환값은 2025-04-30입니다.

이 방식의 장점:

  • 각 행의 데이터에 따라 동적 계산이 이루어짐
  • 기간 또는 시작일 변경 시 수식을 바꾸지 않고 값만 수정하면 됨

과거의 월말일 계산하기

EOMONTH는 기준일로부터 과거의 월말일도 계산할 수 있습니다. 예를 들어, 프로젝트 기간이 5개월이고 마감일로부터 역산해서 여유를 한 달 더 둔다면 시작해야 하는 월말일을 구할 수 있습니다.

예시 수식(Deadline이 E열, Months가 B열인 경우):

=EOMONTH([@Deadline],-[@Months]-1)

설명:

  • -[@Months]는 마감일로부터 소요 개월만큼 뒤로 이동
  • 추가로 -1을 해서 한 달 더 여유를 둠
  • EOMONTH가 해당 달의 마지막 날짜를 반환

예: 마감일이 2026-01-27이고 Months가 5이면, 식은 2025-07-31을 반환합니다.

연 단위를 포함한 장기 계산

EOMONTH는 달 단위 연산만 지원하기 때문에 연 단위로 이동하려면 연수 × 12를 사용합니다.

예:

=EOMONTH([@[Start date]],[@Years]*12)

역으로 뒤로 가려면 음수 부호를 붙입니다.

=EOMONTH([@[Start date]],-[@Years]*12)

예: 시작일 2025-01-04, Years = 2이면 결과는 2027-01-31입니다.

현재 월의 월말일과 남은 일수 계산

이번 달의 남은 일수를 구하려면 TODAY 함수와 결합합니다.

=EOMONTH(TODAY(),0)-TODAY()

설명:

  • EOMONTH(TODAY(),0)은 현재 월의 마지막 날짜(직렬 번호)를 반환
  • TODAY()는 오늘 날짜(직렬 번호)를 반환
  • 차이를 계산하면 남은 일수

주의: 셀 서식이 날짜로 지정되어 있으면 날짜 형태로 보일 수 있으므로 셀 서식을 “일반(General)” 또는 숫자로 변경하세요.

예를 들어 예산에서 일일 사용 가능액을 계산하려면 총 여유금액을 남은 일수로 나누면 됩니다:

=B6/B1

(상황에 따라 B6는 남은 예산, B1은 남은 일수 등)

SEQUENCE와 결합해 월말일 시퀀스 생성하기

동적 배열 함수인 SEQUENCE를 사용하면 연속된 월말 날짜 배열을 쉽게 만들 수 있습니다. 예:

=EOMONTH(DATE(2024,12,31),SEQUENCE(12))

해석:

  • DATE(2024,12,31)은 기준일(여기서는 2024-12-31). EOMONTH는 다음 달(즉 2025년 1월)부터 시작해 SEQUENCE가 만든 인덱스 값(1,2,…,12)에 따라 월말을 반환합니다.

2개월 간격으로 반환하려면:

=EOMONTH(DATE(2024,12,31),SEQUENCE(6,,,2))

분기별(3개월 간격):

=EOMONTH(DATE(2025,2,28),SEQUENCE(4,,,3))

주의:

  • SEQUENCE가 반환하는 동적 배열은 표(Excel Table)와 호환되지 않습니다. 일반 셀에만 사용하세요.
  • 결과를 고정하려면 범위를 복사(Ctrl+C)한 뒤 값만 붙여넣기(Ctrl+Shift+V 또는 마우스 우클릭 > 값 붙여넣기)를 하세요.

자주 발생하는 문제와 해결법

중요: 다음 항목들은 실무에서 자주 마주치는 오류와 주의사항입니다.

  1. 잘못된 입력 유형
  • 문제: 시작일(a)에 날짜가 아닌 텍스트가 들어가 있는 경우 #VALUE! 오류 또는 잘못된 결과가 나옵니다.
  • 해결: DATEVALUE 또는 DATE 함수를 사용해 확실히 날짜로 변환하거나, 셀 서식을 확인하세요.
  1. 1900년/1904년 날짜 시스템
  • 문제: Excel 파일의 날짜 시스템이 1900 또는 1904 모드인지에 따라 직렬 번호 해석이 달라질 수 있습니다. (특히 Mac에서 1904 기반 파일을 다룰 때)
  • 해결: 파일 > 옵션 > 고급 > 날짜 시스템 확인 후 일관성 유지. 다른 사용자와 파일을 주고받는 경우 날짜 시스템 일치 여부 확인하세요.
  1. 음수 또는 매우 큰 이동값
  • 문제: b 인수에 음수나 큰 숫자를 넣으면 의도하지 않은 연도 이동이 발생합니다.
  • 해결: Months 또는 Years 컬럼 값 범위를 검증(예: 데이터 유효성 검사)하고, 극단적 값에 대한 방어 코드를 넣으세요.
  1. 표(Table)와 동적 배열의 충돌
  • 문제: SEQUENCE 등 동적 배열 수식은 Excel Table 내부에서 스필(spill)되지 않습니다.
  • 해결: 동적 배열 수식은 표 바깥의 셀에 작성하거나, 결과를 값으로 붙여넣은 뒤 표로 변환하세요.
  1. 날짜 표시 형식
  • 문제: EOMONTH 결과가 날짜로 보이지 않고 숫자로 보이거나 반대로 날짜로 보이는데 연산이 필요한 경우 문제가 발생할 수 있습니다.
  • 해결: 필요한 경우 TEXT 함수로 포맷하거나 셀 서식을 적절히 설정하세요. 예: =TEXT(EOMONTH(A1,1),”yyyy-mm-dd”)

EOMONTH가 잘 맞지 않을 때: 대안과 팁

  • 같은 일자를 유지해서 월 단위 이동이 필요하면: EDATE(시작일, 개월수)
  • 특정 조건(예: 영업일 기준 월말)으로 계산해야 하면: WORKDAY, EOMONTH, NETWORKDAYS 등을 조합
  • 분기 말이 아니라 특정 회계 처리 기준일(예: 매월 25일)이 필요하면: DATE 함수와 DAY 비교로 커스텀 규칙 작성

대체 예시(같은 일자 유지):

=EDATE(A1,3)  // A1의 같은 일자에서 3개월 뒤 날짜

영업일 기준 월말(예: 해당 월의 마지막 영업일 계산) 예시 아이디어:

  • 월말 찾기: EOMONTH(A1,0)
  • 마지막 영업일은 WORKDAY(EOMONTH(A1,0)+1,-1)로 계산 가능
=WORKDAY(EOMONTH(A1,0)+1,-1)

실무 도입용 미니 방법론(Workbook 적용 SOP)

  1. 요구 정의
  • 어떤 기준일이 필요한가?(예: 청구 마감일, 프로젝트 시작/종료, 보고서 기준일)
  • 월말 기준인가? 혹은 분기말/회계기준일인가?
  1. 데이터 표준화
  • 날짜 칼럼은 모두 날짜 형식으로 통일
  • 개월수/연수 칼럼은 정수로 제한(데이터 유효성 검사 적용)
  1. 함수 설계
  • 단일 프로젝트 행에 대해 EOMONTH/EDATE 선택
  • SEQUENCE 사용이 필요하면 일반 범위에 배치
  1. 검증 & 테스트
  • 테스트 케이스(아래 섹션 참조)로 경계값 확인
  1. 롤아웃
  • 시트 내 설명 칸(주석) 추가
  • 사용자를 위한 간단 가이드 및 예시 2~3개 삽입
  1. 유지보수
  • 날짜 시스템(1900/1904) 검사
  • 테이블 구조 변경 시 수식 영향 검토

역할별 체크리스트

프로젝트 매니저

  • 시작일과 기간(개월)을 표준화했는가?
  • EOMONTH로 계산된 마감일을 팀과 공유했는가?
  • 변경 시 수식이 동작하는지 테스트했는가?

재무/회계

  • 회계 기간(분기/반기/연도)에 맞춰 EOMONTH 또는 DATE 조합을 적용했는가?
  • 영업일 기준이 필요하면 WORKDAY 조합을 고려했는가?

데이터 분석가

  • 동적 배열(SEQUENCE)로 생성된 날짜 범위를 데이터 파이프라인에서 잘 처리하는가?
  • 날짜 직렬 번호 대신 명확한 문자열 포맷(TEXT)으로 변환해야 하는 곳은 없는가?

소프트웨어/시스템 관리자

  • 파일을 다른 사용자와 공유할 때 날짜 시스템(1900/1904)을 고려했는가?

테스트 케이스와 인수 기준

테스트 케이스(입력 -> 기대 결과):

  1. 입력: 시작일 2025-01-04, b=3 -> 기대: 2025-04-30
  2. 입력: 시작일 2024-01-31, b=1 -> 기대: 2024-02-29(윤년 고려)
  3. 입력: 시작일 2023-01-31, b=1 -> 기대: 2023-02-28
  4. 입력: 시작일 2025-12-15, b=-6 -> 기대: 2025-06-30
  5. 입력: START가 텍스트(“2025-05-10”) -> 기대: 자동 변환 또는 오류 처리
  6. SEQUENCE 사용: DATE(2024,12,31),SEQUENCE(12) -> 기대: 2025년 1월부터 12월까지 월말 배열

인수 기준(수용 기준):

  • 주어진 모든 정상 케이스에서 EOMONTH는 기대 월말을 정확히 반환해야 한다.
  • 윤년(2월 29일)과 월 말이 30/31일인 경우 올바르게 처리되어야 한다.
  • 비정상 입력(텍스트, 빈 셀)은 예외 처리 로직 또는 사용자 안내 메시지를 통해 처리되어야 한다.

치트 시트: 자주 쓰는 수식 모음

  • 같은 달의 월말:
=EOMONTH(A1,0)
  • n개월 뒤의 월말:
=EOMONTH(A1,n)
  • n개월 전의 월말:
=EOMONTH(A1,-n)
  • n년 뒤의 월말:
=EOMONTH(A1,n*12)
  • 이번 달 남은 일수:
=EOMONTH(TODAY(),0)-TODAY()
  • 동적 월말 시퀀스(1년):
=EOMONTH(DATE(2024,12,31),SEQUENCE(12))
  • 동적 격월 시퀀스(6개):
=EOMONTH(DATE(2024,12,31),SEQUENCE(6,,,2))
  • 마지막 영업일(월말의 영업일):
=WORKDAY(EOMONTH(A1,0)+1,-1)
  • 날짜를 문자열로 고정 포맷:
=TEXT(EOMONTH(A1,3),"yyyy-mm-dd")

결정 트리: 어떤 함수를 쓸까?

flowchart TD
  A[날짜를 월 단위로 이동할 필요가 있나요?] -->|예| B{같은 '일'을 유지하길 원하나요?}
  A -->|아니오| Z[함수 불필요]
  B -->|예| C[EDATE'시작일, 개월수']
  B -->|아니오| D[EOMONTH'시작일, 개월수']
  D --> E{영업일 기준이 필요한가요?}
  E -->|예| F[WORKDAY 또는 NETWORKDAYS 조합]
  E -->|아니오| G[결과는 EOMONTH 사용]

엣지 케이스 갤러리(주요 예외 상황)

  • 입력 날짜가 월말인 경우: EOMONTH(A1,0)은 여전히 그 달의 월말을 반환(변화 없음).
  • 1월 31일에서 1개월 이동: 윤년 여부에 따라 2월 28일 또는 29일을 반환.
  • 음수의 큰 값(예: -1200): 100년 전의 월말까지 계산되므로 데이터 유효성 검사 필요.

현지화 및 한국 로컬 팁

  • 날짜 표시: 한국에서는 일반적으로 “yyyy년 m월 d일” 또는 “yyyy-mm-dd” 형식을 사용합니다. 보고서 목적이면 TEXT 함수로 포맷을 고정하세요.
  • 근무일 기준: 한국의 공휴일을 반영하려면 WORKDAY.INTL 또는 사용자 정의 휴일 목록을 사용해 정확한 영업일 계산을 하세요.
  • 회계 기준일: 어떤 기업은 월말 대신 특정 회계 마감일(예: 매월 25일)을 사용합니다. 이 경우 EOMONTH가 아닌 DATE와 DAY 비교 로직으로 커스텀 수식을 만드세요.

보안 및 개인정보 관련 메모

EOMONTH 자체는 개인정보를 수집하거나 외부 서비스와 통신하지 않습니다. 다만 날짜 데이터가 개인식별정보(PII)와 연결되어 있는 경우 해당 통합 문서의 접근 권한을 통제하세요.

요약

  • EOMONTH은 기준일에서 개월 수만큼 이동한 달의 마지막 날짜를 반환하는 간단하면서도 강력한 함수입니다.
  • EDATE는 “같은 일자 유지“가 필요할 때 사용합니다.
  • SEQUENCE와 결합하면 연속된 월말 시퀀스를 쉽게 만들 수 있지만 동적 배열은 표 내부에서 작동하지 않습니다.
  • 날짜 시스템(1900/1904), 텍스트 입력, 극단적 이동값 등 일반적인 예외는 미리 검증해 두어야 합니다.

핵심 팁: 표준화된 날짜 형식과 데이터 유효성 검사를 도입하면 EOMONTH 기반 계산은 유지보수하기 쉽고 오류 발생률이 크게 줄어듭니다.

Excel에서 프로젝트 기간과 월말 계산을 보여주는 테이블 이미지

EOMONTH가 시작일을 기준으로 개월 수만큼 이동하여 월말을 반환하는 다이어그램 이미지

마감일로부터 시작일을 역산해 월말을 구하는 예시 테이블 이미지

EOMONTH로 과거로 이동해 시작일을 계산하는 과정 이미지

장기 프로젝트의 시작일과 종료일을 계산하는 Excel 테이블 이미지

EOMONTH와 TODAY를 사용해 남은 일수를 계산하는 예산 시트 이미지

EOMONTH과 TODAY 함수가 남은 일수를 계산하는 모습을 보여주는 화면 캡처 이미지

당월 남은 일수로 일일 지출 한도를 계산하는 예산 시트 이미지

EOMONTH, DATE, SEQUENCE를 결합해 월말 배열을 만드는 모습 이미지

격월 월말 배열을 만드는 예시 이미지

분기별 월말을 생성하는 EOMONTH, DATE, SEQUENCE 결합 예시 이미지


추가 요점: EOMONTH는 날짜를 “월말 기준“으로 맞출 때 가장 유용합니다. 만약 결과로 “같은 일자”가 필요하다면 EDATE를 사용하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기