엑셀의 WEEKDAY 함수는 날짜의 요일 값을 숫자로 반환합니다. 1은 일요일, 2는 월요일, 3은 화요일... 과 같이 반환합니다. 두 번째 인수를 이용하면 요일 값을 바꿀 수도 있습니다.
WEEKDAY 함수는 단독으로 사용되기보다는 IF 함수나 CHOOSE 함수 등 다른 함수와 같이 조합해서 요일에 따라 별도의 처리를 해야 할 때 많이 사용됩니다.
구문(Syntax)
WEEKDAY(serial_number,[return_type])
날짜의 요일 값을 숫자로 반환한다.
인수 :
- serial_number : 날짜(날짜는 엑셀 내부적으로 숫자 일련번호 형태로 저장되기 때문에 serial_number라고 부름)
- [return_type] : 반환 값 유형을 결정하는 인수, 생략 가능
1 또는 생략 1(일요일)에서 7(토요일) 사이의 숫자 2 1(월요일)에서 7(일요일) 사이의 숫자 3 0(월요일)에서 6(일요일) 사이의 숫자 11 1(월요일)에서 7(일요일) 사이의 숫자 12 1(화요일)에서 7(월요일) 사이의 숫자 13 1(수요일)에서 7(화요일) 사이의 숫자 14 1(목요일)에서 7(수요일) 사이의 숫자 15 1(금요일)에서 7(목요일) 사이의 숫자 16 1(토요일)에서 7(금요일) 사이의 숫자 17 1(일요일)에서 7(토요일) 사이의 숫자
사용 예
1) 두 번째 인수 반환 유형(return_type) 생략 시
아래 그림과 같이 일요일은 1, 월요일은 2, 화요일은 3... 토요일은 7과 같이 요일 값을 구하려면
다음과 같이 수식을 입력합니다.
=WEEKDAY(B6)
또는
=WEEKDAY(B6,1)
두 번째 인수 반환 유형(return_type)을 생략하거나 1을 입력하면 일요일은 1, 월요일은 2, 화요일은 3... 토요일은 7과 같이 요일 값을 구해줍니다.
2) 두번째 인수 반환 유형(return_type)에 따라 요일 값 바꾸기
WEEKDAY 함수의 두 번째 인수 '반환 유형(return_type)'을 바꾸면 다음 그림과 같이 반환되는 요일 값을 바꿀 수 있습니다.
예를 들어 두 번째 인수 반환 유형(return_type)을 2를 입력하면 일요일은 7, 월요일은 1, 화요일은 2... 토요일은 6과 같이 요일 값을 구해줍니다.
=WEEKDAY(B18,2)
3) 토,일요일 근무시 기본일급의 150%를 지급할 때 계산
이번에는 WEEKDAY 함수를 실무에서 쓸 수 있도록 응용해 보겠습니다.
어떤 회사의 일용 근로자 급여 계산을 다음과 같이 한다고 할 때
- 기본 일급 10만원
- 평일에는 기본 일급 그대로 지급
- 토요일, 일요일에 근무하면 기본 일급의 150%를 지급
요일별로 계산이 달라져야 하므로 다음과 같이 수식을 입력합니다.
=IF(C7="Y", IF(WEEKDAY(B7)=7,1.5,IF(WEEKDAY(B7)=1,1.5,1))*$C$4,0)
수식을 풀이해 보면 다음과 같습니다.
- 만약에 C7의 값이 'Y'이면(근무여부를 'Y'라고 표시한 경우에만 급여계산)
IF(C7="Y"
- B7의 요일값을 구해서 7(토요일)이면 1.5(150%)를 구하고
IF(WEEKDAY(B7)=7,1.5
- 7이 아니면 다시 요일값을 구해서 1(일요일)이면 1.5(150%)를 구하고
- 7(토요일)도 아니고 1(일요일)도 아니면(평일이면) 1(100%)를 구하고
IF(WEEKDAY(B7)=1,1.5,1
- 최종적으로 위에서 구한 값(1.5 또는 1)에 기본일급 100,000원을 곱해서 요일별 일급을 구합니다.
관련 글
저장한 날짜에 날짜를 맞추는 건 어떡해할까요?
질문을 이해하지 못했습니다. 자세히 설명부탁드립니다.
파일을 열때마다 today()가 작동해서 날짜가 자꾸 바뀝니다. 저장한 날짜에 today함수로 나온 날짜를 그대로 하고싶습니다.
날짜가 바뀌지 않도록 하려면, 원하는 날짜를 직접 입력하시면 될것 같습니다.
시작일과 종료일 사이에 포함된 월 구하기는 어떻게 해야할까요? 날짜구간 데이터가 있고 월마다 데이터를 정리해야하는데 어려움이 있습니다..
예) 시작일 2020.03.01, 종료일 2020.09.07
월 : 3,4,5,6,7,8,9
안녕하세요. MONTH함수로 시작월과 종료월을 구하고, 종료월-시작월+1 = 월의 갯수, 시작월부터 1씩 더하되 월의 갯수만큼 계속더하는 방식을 응용하시면 될듯합니다.
감사합니다.