엑셀 문서 서식을 주차별로 관리하는 경우 입력된 날짜 데이터값이 해당월의 몇주차에 해당하는지 수식을 작성하여 결과값을 반환할 수 있습니다.
이번 글에서는 날짜를 입력했을때 해당 날짜의 요일, 그리고 해당 날짜가 해당월의 몇주차에 해당하는지 알수 있는 수식을 작성해 보도록 하겠습니다.
요일을 반환 하는 함수.
Weekday함수와 Choose함수.
입력된 날짜 데이터값을 요일로 반환하는 함수는 Weekday함수와 Choose함수를 사용할 수 있습니다.
Weekday함수 수식 구문.
=Weekday(serial_number, [return_type])
|
weekday함수로 요일을 반환하는 수식을 작성하게 되면 1~7까지의 번호로 요일을 반환하기 때문에 “월요일”과같이 결과값을 표기 하기 위해서는 Choose함수와 결합해서 사용해야 결과값을 텍스트로 반환할 수 있습니다.
Choose함수 수식 구문.
=Choose(index_num, value1, value2, …)
|
Weekday함수와 Choose함수를 결합하여 요일을 결과값으로 반환하려는 수식 예제.
- =Weekday(A1,2)
A1셀 입력값이 2023-10-01의 경우 결과값은 7을 반환하고, 만약 Value인수값 2를 생략하게 되면 결과값은 1을 반환하게 됩니다.
2023-10-01은 일요일이기 때문에 Value인수값을 생략할 경우 1(일요일) ~ 7(월요일)로 시리얼 넘버를 반환하게 되고 Value인수값 2를 작성할 경우 1(월요일) ~ 7(일요일)로 시리얼 넘버를 반환하게 됩니다.
Weekday함수로만 수식을 작성하게 되면 결과값은 1~7까지 시리얼 넘버로 반환하기 때문에 Choose함수로 시리얼 넘버를 텍스트로 변환해 주어야 합니다.
=Weekday(A1,2) 수식이 B1셀에 작성되어 있다고 가정할 경우 Choose함수 수식은 =Choose(B1,”월요일”,”화요일”,”수요일”,”목요일”,”금요일”,”토요일”,”일요일”)로 작성하고 결과값은 “일요일“을 반환하게 됩니다.
그러나 B1셀에 작성된 수식이 Weekday(A1,생략 또는 1)인 경우 =Choose(B1,”월요일”,”화요일”,”수요일”,”목요일”,”금요일”,”토요일”,”일요일”)수식을 작성하게 되면 결과값은 “월요일“을 반환하게 되어 원하는 결과값이 나오지 않게 됩니다.
따라서 =Weekday(A1, 인수 생략 또는 1)의 경우로 수식을 작성하게 되면 Choose함수 수식은 =Choose(B1,”일요일”,”월요일”,”화요일”,”수요일”,”목요일”,”금요일”,”토요일”)로 작성해 줘야 2023-10-01의 요일을 “일요일”로 반환할 수 있습니다.
입력된 날짜 데이터를 요일로 반환 하기 위해서 Weekday함수 수식으로 시리얼 넘버로 반환하고 Choose함수 수식으로 Weekday함수 수식의 결과값을 조건으로 하여 요일을 반환하기 때문에 이 두 함수 수식을 결합하여 작성하면 2개의 셀에 Weekday함수 수식, Choose함수 수식의 결과값으로 반환하는것을 1개의 셀에 결과값을 반환할 수 있습니다.
- =Choose(Weekday(A1,2),”월요일”,”화요일”,”수요일”,”목요일”,”금요일”,”토요일”,”일요일)
Choose함수의 index_num인수는 결국 B1셀을 참조하기 때문에 B1셀에 작성한 수식 Weekday(A1,2)수식을 대신 작성하여 결과값을 가져오도록 하나의 수식으로 작성할 수 있습니다.
Text함수 수식으로 간단하게 요일 반환하기.
위에서 살펴본 Weekday함수는 요일을 반환하는 함수이지만 Choose함수와 함께 사용해서 요일을 텍스트로 반환할 수 있기 때문에 수식을 작성하는데 약간의 번거로움이 있을 수 있습니다.
따라서 입력된 날짜 데이터값을 요일로 간단하게 작성하기 위해서는 Text함수로 수식을 작성할 수 있습니다.
Text함수 수식 구문.
=Text(value, format_text)
|
Text함수 수식으로 요일을 반환하는 수식은 다음과 같이 작성할 수 있습니다.
- =Text(A1,”AAA”)
- =Text(A1,”AAAA”)
첫번째 수식 =Text(A1,”AAA”)의 결과값은 “월”, “화”, “수”…와 같이 반환합니다.
두번째 수식 =Text(A1,”AAAA”)의 결과값은 “월요일”,”화요일”,”수요일”…과 같은 결과값을 반환하게 됩니다.
날짜 주차를 반환하는 함수.
입력된 날짜 데이터값이 해당하는 주차를 반환하는 함수는 Weeknum함수입니다.
Weeknum함수.
Weeknum함수 수식 구문.
=Weeknum(serial_number, [return_type])
return_type을 생략하거나 1로 지정하는 경우 주차의 시작을 일요일로 시작하고, 2로 지정하는 경우 월요일을 주차의 시작일로 지정할 수 있습니다. |
Weeknum함수는 날짜를 주차로 반환하는 함수이지만 1년중 몇주차에 해당하는지를 반환하는 함수로 해당월에 몇주차에 해당하는지를 반환하지는 않습니다.
=Weeknum(A1,1)의 수식을 작성하고 A1셀에 입력된 날짜는 2023-10-01이라고 한다면 결과값은 40을 반환하게 되어 2023-10-01의 날짜가 2023년중 40주차에 해당하는것을 알 수 있습니다.
해당월의 주차를 반환하는 Weeknum함수 수식.
월단위로 관리하는 문서의 경우 해당월의 주차별로 관리 하는 경우 Weeknum함수 단독으로 사용하여 주차를 반환할수는 없기 때문에 월별 주차를 반환해야 하는 경우 수식을 조금만 응용한다면 결과값을 반환할 수 있습니다.
A1셀에 입력된 날짜 2023-10-01의 주차는 1년중 40주차이기 때문에 10월의 시작일자로 1주차로 계산하기 위해서는 2023-10-01날짜를 41주차로 계산하여 40주차를 빼주면 1주차로 결과값을 반환할 수 있습니다.
A1셀에 입력된 2023-10-01의 날짜를 41주차로 계산하기 위한 수식은 =Weeknum(A1-Day(A1)+1)으로 작성하면 반환하는 주차는 41주차를 반환하게 됩니다.
따라서 2023-10-01의 날짜를 1주차로 반환하기 위한 수식은 다음과 같이 작성 할 수 있습니다.
=(Weeknum(A1)-Weeknum(A1-Day(A1)+1))+1
※ 위 수식을 작성 후 결과값이 날짜 형식으로 반환된다면 표시 형식을 “일반”으로 설정해 주시면 1,2,3,4와 같은 숫자 형태로 결과값을 반환할 수 있습니다. |
만약 (Weeknum(A1)-Weeknum(A1))+1로 수식을 작성하는 경우 해당월의 첫 주차는 1주차로 반환할 수 있지만 2,3,4…주차역시 1주차로 반환하게 되어 올바른 주차를 반환할 수 없습니다.
또한 Weeknum(Day(A1)으로 수식을 작성해도 1주차부터 결과값을 반환하지만 요일과 관계 없이 해당월의 시작일자를 1주차로 반환하기 때문에 이것 역시 올바른 결과값을 가져오지 않게 됩니다.
글을 마치며…[행아아빠 생각]
이번 글에서는 입력된 날짜 데이터값을 참조해서 날짜의 요일과 해당월에서 몇주차인지를 반환하는 수식을 작성해 보았습니다.
엑셀 문서 서식은 주로 주단위, 월단위, 연단위로 관리는 문서 서식이 많기 때문에 요일과 주차를 자동으로 입력해 주는 수식을 작성해 준다면 업무 효율을 증대 시켜줄 수 있지 않을까 생각해 보면서 작성을 해 보았습니다.
알고나면 간단한 함수들을 사용할뿐더러 수식 역시 생각보다 복잡한 수식이 아니기 때문에 사용자 본인이 알고 있는 함수들을 조금만 응용한다면 원하는 계산 결과값을 반환하는 수식을 작성할 수 있을것이라 생각해 봅니다.
샘플 서식 다운로드.
엑셀 입력된 날짜의 주차-요일 계산 샘플 서식 |