엑셀 요일 구하기 — WEEKDAY·TEXT 함수로 날짜에서 요일 표시하기
최종 업데이트 2026-07-04
근태표나 일정표를 만들다 보면 날짜만 보고는 무슨 요일인지 한눈에 파악하기 어렵습니다. 엑셀에는 날짜에서 요일을 자동으로 뽑아주는 함수가 두 가지 있는데, 숫자로 뽑는 WEEKDAY와 텍스트로 바로 뽑는 TEXT입니다. 상황에 맞게 골라 쓰면 됩니다.
TEXT 함수 — 요일을 한글로 바로 표시
가장 간단한 방법은 TEXT 함수에 서식 코드 'aaa' 또는 'aaaa'를 지정하는 것입니다. A2에 날짜가 있다면 다음과 같이 씁니다.
=TEXT(A2, "aaa")
'aaa'는 '월', '화'처럼 한 글자로, 'aaaa'는 '월요일'처럼 전체 이름으로 표시합니다. 요일 앞뒤로 괄호를 붙이고 싶다면 서식 코드를 "(aaa)"처럼 감싸면 됩니다.
=TEXT(A2, "(aaa)")
WEEKDAY 함수 — 요일을 숫자로 뽑아 조건 판단에 활용
=WEEKDAY(날짜, [반환유형])
WEEKDAY는 요일을 숫자(1~7)로 반환합니다. 반환유형을 생략하거나 1로 지정하면 일요일이 1, 월요일이 2, …, 토요일이 7입니다. 반환유형을 2로 지정하면 월요일이 1, 일요일이 7이 되어, 주의 시작을 월요일로 보는 우리나라 관행과 더 잘 맞습니다.
=WEEKDAY(A2, 2)
주말·평일 구분하기
WEEKDAY 결과를 IF와 조합하면 주말·평일을 자동으로 구분할 수 있습니다. 반환유형 2 기준으로 6(토요일), 7(일요일)이면 주말입니다.
=IF(WEEKDAY(A2, 2)>=6, "주말", "평일")
OR 함수로 요일 이름을 직접 비교하는 방법도 있습니다. TEXT로 뽑은 요일이 '토'나 '일'이면 주말로 표시합니다.
=IF(OR(TEXT(A2,"aaa")="토", TEXT(A2,"aaa")="일"), "주말", "평일")
공휴일까지 반영한 근무일 판단
단순 주말뿐 아니라 공휴일까지 제외한 '실제 근무일'을 판단하려면 NETWORKDAYS 함수를 씁니다. 시작일과 종료일 사이의 근무일 수를 구하고, 세 번째 인수로 공휴일 목록 범위를 지정하면 해당 날짜들을 자동으로 제외합니다.
=NETWORKDAYS(시작일, 종료일, 공휴일범위)
예를 들어 프로젝트 기간(A2~B2) 중 실제 근무일수를 공휴일 목록(E2:E20)을 반영해서 구하려면 =NETWORKDAYS(A2, B2, E2:E20) 로 계산합니다. 회사마다 근무 요일이 다르면 NETWORKDAYS.INTL 함수로 특정 요일을 휴무일로 지정할 수도 있습니다.
조건부서식으로 주말 행 자동 강조
근태표에서 주말 행 전체에 배경색을 자동으로 넣고 싶다면, 표 전체를 선택한 뒤 조건부서식 → 새 규칙 → 수식 사용에 다음을 입력하면 됩니다(A열이 날짜, 2행부터 시작 기준).
=WEEKDAY($A2,2)>=6
자주 나는 오류와 주의사항
- •요일이 영어로 나올 때: 시스템 언어 설정에 따라 TEXT의 aaa 서식이 'Mon'처럼 영어로 나올 수 있습니다. 셀 서식을 한국어(로캘 ko-KR)로 지정하거나, 문서 자체의 언어 설정을 확인하세요.
- •WEEKDAY 반환유형 헷갈림: 기본값(1)은 일요일 시작, 2는 월요일 시작입니다. 조건부서식이나 IF 조건을 짤 때 어떤 유형을 썼는지 반드시 확인하세요.
- •날짜가 텍스트로 입력된 경우: '2026-07-04'처럼 보여도 실제로는 텍스트일 수 있습니다. 이 경우 WEEKDAY·TEXT 모두 #VALUE! 오류를 냅니다. DATEVALUE로 먼저 날짜로 변환하세요.
- •NETWORKDAYS 공휴일 범위: 공휴일 목록이 실제 '날짜' 형식이어야 합니다. 텍스트로 입력된 날짜는 무시됩니다.
요일별 근무수당이나 배차 규칙처럼 요일에 따라 다른 처리가 필요할 때는 WEEKDAY로 숫자를 구한 뒤 CHOOSE 함수와 조합하면 수식 하나로 요일별 로직을 깔끔하게 처리할 수 있습니다.