• 최초 작성일: 2013-09-23
  • 최종 수정일: 2026-09-21
  • 조회수: 36 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 유효한 날짜 값만 입력되도록 만들기

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

추석 연휴는 잘들 보내셨나요?

Exceller는 가족이 방문을 해서
상하이와 항저우 일대를 마음껏 돌아다녔습니다.
여행을 마치고, "무엇이 가장 기억에 남느냐?"는 질문에
Exceller Junior는 "상하이 임시정부청사"라고 답하더군요.
(기특한 지고…)

학생들 수학 여행으로 다른 곳도 좋지만
이곳 임시정부청사에 와서 설명을 곁들여 역사 수업을 하면
"왜 역사를 배워야 하는가?"
"일제 식민 기간 동안에도 순기능은 있었다"
따위의 말들은 하지 않게 되리라 생각합니다.

이번 강좌는… 수식에 과민 반응이 있는 분들은
조심스레 따라오시기 바랍니다. ^^
산을 넘고 물도 건너야 하는 강좌가 될 듯 해서 말이지요.
그렇다고 수식 자체가 복잡한 것은 아니니
너무 겁 먹지는 마시고요.ㅎㅎ

완성 예

A열에는 날짜 데이터 중에서 특정한 조건(예를 들어 8월 1일~31일)을
충족하는 경우에만 입력이 되도록 하는 예제를 만들어 보겠습니다.
만약 유효하지 않은 데이터를 입력하게 되면
이렇게 오류 메시지가 나타나도록 합니다.

가계부 형태의 표에서 A열에 날짜를 입력하다가 유효하지 않은 날짜(13/9/5)를 입력했을 때 '날짜 입력 오류!' 창에 '유효하지 않은 날짜입니다. 다시 확인하세요!' 메시지가 나타난 화면. 입력 셀 옆에는 '날짜 입력' 설명 메시지가 있고 날짜 열이 빨간 점선 사각형으로 표시됨
아이엑셀러
권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 지음

📊 신간 전자책(PDF) · 287쪽 · 13500원

엑셀 대시보드를 만드는 최적의 '표준 3계층 구조'

  • 3초 안에 읽히는 화면 설계 감각 습득
  • Microsoft Excel MVP의 실전 노하우 수록
  • 중간마진 없는 합리적인 가격, 오직 아이엑셀러에서만!
지금 구매하기 완성 화면 보기

엑셀 유효한 날짜 값만 입력되게 하기, 데이터 유효성 검사와 CELL 함수

핵심 요약: 유효한 날짜 값만 입력되게 하기

데이터 유효성 검사의 '날짜' 조건으로 기간을 제한하고, '사용자 지정' 조건에 ISNUMBER와 CELL 함수를 조합한 수식을 넣으면 날짜 서식의 값만 입력되게 할 수 있습니다.

  • 기간 제한: '제한 대상 - 날짜'에서 시작 날짜와 끝 날짜를 지정합니다(예제는 2013-08-01 ~ 2013-08-31).
  • 날짜 데이터만 허용: '제한 대상 - 사용자 지정'에 =AND(ISNUMBER(A2),LEFT(CELL("format",A2),1)="d")를 입력합니다.
  • CELL 함수: CELL("format",A2)는 셀의 숫자 서식을 나타내는 코드를 반환하며 날짜 서식은 D로 시작합니다.
  • 메시지: '설명 메시지'와 '오류 메시지' 탭에서 안내 문구를 지정합니다.

1. "제한 대상 - 날짜" 지정

날짜가 입력될 영역(Workplace 시트의 A2:A30)을 범위로 지정하고
'데이터 - 데이터 유효성 검사'아이콘을 클릭합니다.

'데이터 유효성' 대화상자의 '설정' 탭을 클릭합니다.
'제한 대상 - 날짜'를 선택하고 시작 날짜와 끝 날짜를 지정합니다.

데이터 유효성 대화상자의 '설정' 탭. 제한 대상은 '날짜', 제한 방법은 '해당 범위', 시작 날짜는 2013-08-01, 끝 날짜는 2013-08-31로 지정한 화면
아이엑셀러

'설명 메시지'와 '오류 메시지' 탭을 클릭하여 적당한 메시지를 입력합니다.

데이터 유효성 대화상자의 '오류 메시지' 탭. 스타일은 '중지', 제목은 '날짜 입력 오류!', 오류 메시지는 '유효하지 않은 날짜입니다. 다시 확인하세요!'로 입력한 화면
아이엑셀러

'확인' 버튼을 눌러 대화상자를 닫습니다

이제 A2:A30 셀에 날짜를 입력해 보세요.
13/8/1 ~ 13/8/31 사이의 날짜값만 입력될 것입니다.

2. "제한 대상 - 사용자 지정"

이번에는 여기서 진도를 조금 더 나아가서,
날짜 데이터인 경우에만 입력이 되도록 해 볼까요.

날짜가 입력될 영역(Workplace 시트의 A2:A30)을 범위로 지정하고
'데이터 - 데이터 유효성 검사'아이콘을 클릭합니다.

'데이터 유효성' 대화상자의 '설정' 탭을 클릭합니다.
'제한 대상 - 사용자 지정'를 선택하고 '수식' 부분에 다음과 같이 입력합니다.

데이터 유효성 대화상자의 '설정' 탭. 제한 대상은 '사용자 지정'이고 수식 입력란에 ISNUMBER(A2),LEFT(CELL(
아이엑셀러
=AND(ISNUMBER(A2),LEFT(CELL("format",A2),1)="d")

몇 가지 함수들을 조합해 주었습니다.
다른 건 다들 아실테고… 약간 생소한 거라면 Cell 함수 정도?

3. CELL 함수 이해하기

이전의 어느 강좌에선가 다루었을 테지만 간단히 설명드리지요.
우선 도움말을 읽어볼까요.

CELL 함수는 셀의 서식이나 위치, 내용에 대한 정보를 반환합니다. 예를 들어 셀에 대한 계산을 실행하기에 앞서 셀에 텍스트 대신 숫자 값이 포함되어 있는지 확인하려면 다음과 같은 수식을 사용합니다.

=IF(CELL("type", A1) = "v", A1 * 2, 0)

알 듯 모를 듯 오묘하게 설명되어 있지요?
쉽게 말해서, Cell 함수는 셀에 어떤 서식이 입혀져 있는지,
혹은 어떤 종류의 내용인지(문자인지, 숫자인지, 날짜인지, 등)에 대한
정보를 알려줍니다.

사용 형식은 이렇습니다.

CELL(info_type, 참조 영역)

여기서 info_type으로 무엇을 쓰느냐에 따라 얻을 수 있는 값이 달라지는데
아래와 같은 형태들이 있습니다.
다른 건 그냥 넘기고 "format"만 눈여겨보시면 됩니다.

info_type 반환 값
"address" 참조 영역에 있는 첫째 셀의 참조를 텍스트로 반환
"col" 참조 영역에 있는 셀의 열 번호를 반환
"color" 음수에 대해 색으로 서식을 지정한 셀인 경우 1, 그렇지 않은 경우 0 반환
"contents" 참조 영역에 있는 왼쪽 위 셀의 수식이 아닌 값을 반환
"filename" 텍스트로 참조가 들어 있는 파일의 전체 경로를 포함한 파일 이름을 반환
"format" 셀의 숫자 서식에 해당하는 텍스트 값 반환
"parentheses" 양수 또는 괄호로 서식을 지정한 셀인 경우 1, 그렇지 않은 셀은 0 반환
"prefix" 셀의 "레이블 접두어"에 해당하는 텍스트 값 반환
"protect" 셀이 잠겨 있지 않으면 0, 잠겨 있으면 1을 반환
"row" 참조 영역에 있는 셀의 행 번호를 반환
"type" 셀이 비어 있으면 "b", 텍스트 상수를 포함하면 "l", 그 밖에는 "v" 반환
"width" 셀의 열 너비를 정수로 반올림하여 반환

셀에 입력된 값이 무어냐, 어떤 서식이 지정되었느냐에 따라
"format"은 아래와 같이 다양한 결과 값을 알려줍니다.
다른 건 다 그냥 참고로만 보시면 되고,
날짜 서식과 관련된 표시(분홍색 행)만 보세요.

Excel 서식 CELL 함수 반환 값
일반 "G"
0 "F0"
#,##0 ",0"
0.00 "F2"
#,##0.00 ",2"
$#,##0_);($#,##0) "C0"
$#,##0_);[빨강]($#,##0) "C0-"
$#,##0.00_);($#,##0.00) "C2"
$#,##0.00_);[빨강]($#,##0.00) "C2-"
0% "P0"
0.00% "P2"
0.00E+00 "S2"
# ?/? 또는 # ??/?? "G"
yyyy/m/d 또는 m/d/yy h:mm 또는 yyyy/mm/dd "D4"
d-mmm-yy 또는 dd-mmm-yy "D1"
mmm-yy "D3"
d-mmm 또는 dd-mmm "D2"
mm/dd "D5"
h:mm AM/PM "D7"
h:mm:ss AM/PM "D6"
h:mm "D9"
h:mm:ss "D8"

정정: 표의 값

원문 표에서 서식 0, 0.00, 0%, 0.00%, 0.00E+00은 입력 과정에서 모두 숫자 0으로 바뀌어 표시되어 있어 서식 이름으로 바로잡았고, mmm-yy와 d-mmm의 반환 값(D3, D2)은 서로 바뀌어 있어 Microsoft 문서의 CELL 함수 반환 값에 맞게 고쳤습니다.

먼 길을 돌아왔습니다.
자, 이제 본론으로 다시 돌아갑니다.

CELL("format",A2)

만약 A2 셀에 날짜 데이터가 입력되어 있다면
위 수식의 결과값은 "D1"이 됩니다.
왜냐하면 표에서 날짜 서식은 D로 시작하는 값을 돌려주기 때문이지요.

따라서 Left 함수와 조합을 한 아래 수식의 결과값은…?

LEFT(CELL("format",A2),1)

그렇지요. "D"가 됩니다.
이제 우리는 아래의 수식이 도대체 뭘 의미하는지 해석할 수 있습니다.

=LEFT(CELL("format",A2),1)="d"

A2 셀에 입력된 값이 날짜값이면 True, 날짜값이 아니면 False를
결과값으로 돌려주는 수식이 되겠습니다.
이해가 되시나요?

참고: 사용할 때 주의할 점

CELL 함수의 서식 정보는 셀 서식을 바꾼 직후에는 자동으로 갱신되지 않을 수 있어 F9 키로 다시 계산해야 할 때가 있습니다. 또 데이터 유효성 검사는 값을 직접 입력할 때만 동작하며, 다른 셀에서 복사해 붙여넣은 값은 검사하지 않습니다.

정리 — 날짜 입력 제한 방법

방법 설정 특징
기간 제한 제한 대상 - 날짜, 시작 날짜와 끝 날짜 지정 지정한 기간의 날짜만 입력 가능
날짜 서식만 허용 제한 대상 - 사용자 지정, =AND(ISNUMBER(A2),LEFT(CELL("format",A2),1)="d") 숫자이면서 날짜 서식인 값만 입력 가능

자주 묻는 질문 (FAQ)

Q1. 엑셀에서 특정 기간의 날짜만 입력되도록 제한하려면 어떻게 하나요?

날짜가 입력될 영역을 범위로 지정하고 '데이터 - 데이터 유효성 검사'에서 '제한 대상 - 날짜'를 선택한 뒤 시작 날짜와 끝 날짜를 지정합니다. 예제에서는 2013-08-01부터 2013-08-31 사이의 날짜만 입력할 수 있습니다. '설명 메시지'와 '오류 메시지' 탭에서 안내 문구도 지정할 수 있습니다.

Q2. 날짜가 아닌 값은 입력되지 않게 하려면 어떻게 하나요?

'제한 대상 - 사용자 지정'을 선택하고 수식에 =AND(ISNUMBER(A2),LEFT(CELL("format",A2),1)="d")를 입력합니다. A2 셀에 입력된 값이 숫자이고 셀 서식이 날짜 서식(CELL 함수가 D로 시작하는 값을 반환)일 때만 입력을 허용합니다.

Q3. CELL 함수의 "format"은 무엇을 알려주나요?

셀의 숫자 서식에 해당하는 텍스트 값을 반환합니다. 날짜 서식이면 D1, D4처럼 D로 시작하는 값을 반환하므로 LEFT(CELL("format",A2),1)로 첫 글자를 뽑으면 날짜 서식인지 확인할 수 있습니다.

마치며

오늘은 여기까지…