모두의매뉴얼

이것저것 블로그

[EXCEL] 엑셀에서 특정 요일의 날짜 가져오기

업무적으로 가장 최근의 특정 요일 날짜를 가져오는 방법이 필요해 이렇게 저렇게 해보다가 발견한 방법을 정리해봅니다. 참고로 날짜를 리스트업 해서 필터링 할 필요도 없으며, 셀에 함수와 간단한 수식만 넣으면 해결됩니다.

예제

아래는 실제로 제가 사용하는 셀에 들어가는 수식입니다. 아래 수식은 오늘 날짜의 직전 수요일(previous wednesday) 의 날짜를 반환해주는 수식입니다.

=TODAY()-WEEKDAY(TODAY(),13)+1

이를 응용하면 직전 수요일이 아닌 오늘 날짜로 부터 가장 빨리 돌아오는 수요일(next wednesday)의 날짜를 아래와 같이 구할 수도 있습니다.

=TODAY()-WEEKDAY(TODAY(),13)+8

자, 이제부터 설명 들어갑니다.

설명

TODAY()

TODAY() 함수는 오늘의 날짜를 반환하는 함수입니다. 오늘로 부터 가장 최근의 특정 요일의 날짜를 얻어내기 위한 기준이 됩니다.

WEEKDAY()

조금은 생소 할 수 있는 WEEKDAY() 함수 입니다. 이 함수는 특정 날짜의 요일을 반환 합니다. 기본 사용법은 아래와 같습니다.

=WEEKDAY(serial_number, [return_type])

WEEKDAY() 함수는 요일을 숫자로 반환합니다. serial_number 에 요일을 알고 싶은 날짜를 입력하면 됩니다. return_type 을 특별하게 지정하지 않으면 일요일은 1로 표현하며, 토요일은 7로 표현합니다.

수식 설명

예를 들어 봅시다. 오늘이 2018년 9월 6일(목요일)이면, 가장 최근의 수요일은 2018년 9월 5일입니다. 이를 다시 풀어서 설명하자면, 2018년 9월 6일은 가장 최근의 수요일로 부터 하루 만큼 떨어져 있음을 의미합니다. 마찬가지로 생각 했을때 2018년 9월 7일(금요일)은 가장 최근의 수요일로 부터 2일 차이가 납니다.

위 수식은 이를 수식화 한 것입니다. 오늘을 기준으로해서 오늘이 수요일로 부터 며칠이 차이가 나는지 확인해 빼주고, 수식상의 날짜 차이를 보정해주기 위해 1을 더해주는 것입니다.

참고로 예제에서 WEEKDAY() 함수에서 쓰인 return_type 인 13은 수요일을 1, 목요일을 2, 화요일을 7로 표현해줍니다.

오늘이 화요일이라면 오늘 날짜에서 화요일을 나타내는 7을 빼주고 날짜 보정을 위해 1을 더해주면 직전의 수요일 날짜를 알 수 있습니다.

만약 수요일이 아닌 화요일을 알고 싶다면, return_type 에 12를 넣어 화요일이 1을 나타낼 수 있도록 하면 됩니다.

만약 다가올 가장 최근자 수요일을 알고 싶다면 날짜 보정 값인 +1에 7을 더해서 +8을 해주면 되는 것입니다.

간단하죠?