지난번에 구글 스프레드시트에서 평일날짜와 호출하는 WORKDAY함수와 특정 개월 전후 날짜를 가져오는 EDATE함수를 알아보았습니다.
오늘은 이 둘을 사용하여 구글 스프레드시트에서 기본 날짜 기준으로 월별 같은 날짜이고 휴일에 해당되면 전날 평일 날짜로 호출하는 방법에 대해서 알아보겠습니다.
예를 들어 10일이 월급날인데 매달 10일을 구글 스프레드시트 파일에 입력하는 방법입니다.
이 수식을 알아보고 이해하는데 조금 힘들었습니다.
1.월별 날짜를 입력하려면 EDATE함수를 사용하면 되고, 평일 날짜만 가져오려면 WORKDAY함수를 사용하면 됩니다.
그래서 아래와 같이 입력합니다.
A2에 기준일자를 적습니다. 그리고 EDATE함수를 사용해서 각 한달 뒤 날짜를 호출해 봅니다.
아래 수식은 A2날짜를 기준으로 한달 뒤 날짜를 불러오렴 이라는 의미입니다.
쭉 아래로 드래그 하거나 자동완성 창이 뜨면 선택하면 됩니다.
보통 수식을 사용하면 수식을 다음 행에도 적용할지 여부를 묻는 자동완성 창이 뜹니다.
그런데 보시다시피 토요일이나 일요일이 10일 경우가 있습니다. 주말은 빼고 평일인 날짜만 입력하고 싶습니다.
2.WORKDAY함수가 등장할 차례입니다.
WORKDAY함수가 EDATE함수를 감쌉니다.
아래 함수는 EDATE로 계산된 날짜에 하루를 더한 날짜에 하루를 뺀 날짜 중 주중 날짜만 표출해라 라는 명령어입니다.
아래 보니 4/10일 토요일이 4/9일 금요일로 나온 것을 볼 수 있습니다.
이제 깔끔하게 10일 월급 입금일을 확인할 수 있습니다. 지금은 공휴일 체크는 안했는데요 그건 WORKDAY함수 설명을 보시면 됩니다.
3.그러면 왜 이 수식 WORKDAY(edate(A2,1)+1,-1) 에서 +1, -1을 하는 걸까요?
처음에 이부분을 이해하기 조금 힘들었습니다. 두함수를 조합하면 될것 같은데 잘 안되었거든요.
4월 9일이 호출되는 함수를 살펴보면 WORKDAY(edate(A3,1)+1,-1) 입니다.
edate(A3,1) 을 입력하면 4월 10일 토요일이 나옵니다. 주말은 제외하려고 WORKDAY함수를 사용합니다.
WORKDAY 함수는 지정된 영업일 수 이후의 종료일을 계산합니다.
구문은 이렇습니다.
WORKDAY(시작일, 영업일수, [휴일])
따라서 시작일 그리고 몇일 뒤 날짜인지를 지정해줘야 합니다. 그래서 +1 -1 해서 제자리로 오게 하는 것입니다.
즉 계산된 한달 뒤 날짜에+1-1하면 원래 날짜가 되므로 이를 지정하기 위해서 해주는 것입니다.
EDATE로 계산된 날짜가 4월10일 토요일인데 여기에 하루 더하면 4월11일 일요일이고 여기에 다시 하루 전으로 돌아가면 4월10일 토요일입니다.
그런데 토요일은 휴일이므로 자동으로 4월9일 금요일이 호출됩니다.
4.그리고 또 이렇게도 수식을 적용할 수도 있습니다. 이번에는 ROWS함수도 사용합니다.
ROWS함수는 범위에 있는 행의 수를 가져오라는 명령어입니다.
구문은 다음과 같습니다.
ROWS(범위)
따라서 아래 수식은 C2에 있는 시작일에서 C3에서 C3까지의 행의 수는 1.
그래서 1개월수의 날짜를 불러온다 그리고 그 날짜에 1일 더한 날을 기준으로 -1일을 한 후 평일을 입력하라는 명령어입니다.
WORKDAY함수에서 영업일수를 지정해줘야 해서 이렇게 해주는 것입니다.
C4셀 수식을 한번 보겠습니다.
행의 수가 C3에서 C4까지 2행 따라서 시작일자 C2에서 두달 후 날짜를 적게 되는 것입니다.
이렇게 ROWS함수를 써서 행의 갯수를 이용할 수도 있습니다.
지금 보시는 것처럼 구글시트에서 결과는 같아도 수식을 다양하게 지정할 수 있습니다.
따라서 정답은 없고 본인이 편한 방법을 찾아서 수식을 지정하면 됩니다.
다음에는 구글시트에서 ArrayFormula를 이용해서 수식을 한 번만 적는 것을 알아보도록 하겠습니다.