[엑셀] WORKDAY 함수 사용시 주의사항 feat. HOLIDAYS

다들 아주 많이 사용하고 있는 엑셀의 WORKDAY 함수에서 HOLIDAYS 를 사용할 때 주의사항을 간단하게 정리해봅니다.

기본 사용법

WORKDAY 함수의 기본 사용법은 아래와 같습니다.

=WORKDAY(날짜, days)

인수 중 날짜는 기준이 되는 날짜이고, days 는 기준이 되는 날짜에서 해당 숫자만큼 이동하라는 의미입니다. 물론 주말이나 휴일은 건너뛰고 평일을 기준으로 이동하겠죠.

days 가 음수이면 기준일에서 과거로 이동하고, 양수면 미래로 이동합니다. 예를 들어서 기준일이 2024년 2월 5일이고, days 가 -1 이면 2월 3일과 4일은 주말이니까 2024년 2월 2일을 반환합니다.

HOLIDAYS

선택적으로 사용할 수 있는 인수이지만, 매우 유용하게 쓰이는 holidays 인수가 있습니다. holidays 인수까지 넣어서 사용하는 기본 방법은 아래와 같습니다.

=WORKDAY(날짜, days, [holidays])

제일 마지막에 holidays 인수가 들어가는데, 여기에는 특정 날짜가 들어가거나 휴일로 지정하고 싶은 셀 들을 범위로 지정하면 됩니다. 예를 들면 아래와 같습니다.

=WORKDAY("2024-02-05", -1, Sheet2!A:A)

2024년 2월 5일을 기준으로 평일 기준 하루를 건너뛰는데, Sheet2의 A열에 있는 날짜들도 휴일로 간주하고 하루 이전 날짜를 반환하라는 뜻입니다.

주의사항

여기서 문제가 발생할 소지가 있습니다. 바로 아래와 같은 상황이죠.

위 예시에서 Sheet2 의 A 열을 위 이미지와 같이 작성했다면, 무조건 WORKDAY 함수에서 에러를 경험할 수 있습니다.

마이크로소프트가 안내해준 내용을 보니,

네. 인수 중 하나라도 유효한 날짜가 아니면 오류를 반환한다고 하는데, 그게 holidays 인수의 배열로 들어가 있는 값 중에 하나라도 날짜가 아닌 것이 있으면 똑같이 적용되는거죠.

다시 말해서 위 이미지 파일에서 A1 셀의 휴일목록 이라는 값이 들어가 있기 때문에, 오류가 발생한 것입니다.

그래서 위 holidays 인수에 들어갈 값을 교정하면,

이렇게 됩니다.

별 것도 아닌데 “이게 왜 오류가 나지?” 라는 의문이 들어서 정리해 보았습니다.

끝.

참고자료