99_엑셀 if와 weekday 함수를 중첩하여 주말 피하기 – 함수 중급 (26) 

weekday가 왜 요일 대신 숫자를 반환하는 가는 weekday의 활용도에 있습니다. 어차피 엑셀에서 요일은 숫자이긴 하지만 이 요일과 관련해서 연관되는 함수가 너무 많기 때문입니다. 개인적으로 엑세스를 참 많이 다뤄봤는데 엑세스에서도 이 weekday함수의 리턴 값 즉 숫자를 이용해 자동 휴일 계산, 휴가 일 계산 등 너무나 많은 것을 합니다. 이 weekday함수는 엑셀 분 아니라 VBA에서도 그대로 쓰이는 함수 입니다. 만약 요일을 반환한다면 사람에게만 유용하지만 숫자로 컴퓨터가 바로 이용하도록 반환한다면 활용도가 더욱 더 높아 지겠지요.

이번 포스팅에서는 이 weekday의 활용도를 한가지만 이용해 배송 날짜를 정할 때 주말만 피하는 방법을 알아 보겠습니다.

99연습파일.xlsx

99연습파일_완성본.xlsx

  1. 문제 파악

    물건 배송을 토요일에 걸리면 금요일 배송으로 앞당기고 일요일에 걸리면 월요일 배송으로 미루려고 합니다.

     

    물건 배송일이 구매일을 기준으로 정해 졌으며 휴일을 피해서 배송일을 조정하겠습니다.

     

     

  2. 원래 배송일 구하기 weekday 함수

    지난 포스팅에 자세히 소개 했으나 간단히 복습 합니다. weekday(날짜)는 1부터 (일요일) 7까지(토요일)의 숫자를 반환 합니다.

     

    Weekday함수로 일단 요일의 숫자를 구합니다.

     

     

    2는 월요일입니다. 이걸 요일 형식으로 바꿔 줍니다.

     

     

    셀 서식 창

    컨트롤 + 숫자 1

     

    사용자 지정으로 가서 형식을 aaaa로 바꿔 줍니다. aaa는 한자리 요일 aaaa는 세자리 요일입니다.

     

     

    요일로 변환 됐습니다.

     

     

    이제 채우기 핸들을 더블 클릭해 수식을 아래로 복사 합니다.

     

  3. 공휴일 피하기

    원래 배송일 에는 토요일과 일요일이 있습니다. 토요일에 배송 될 물건은 금요일, 일요일에 배송될 물건은 월요일에 배송해 보겠습니다.

     

    함수를 다음과 같이 입력하고 엔터를 누릅니다.

    제가 함수를 입력하는 방법 입니다. 논리당 구분이 쉽도록 알트 + 엔터를 이용해 줄을 분리 합니다.

    첫째 줄, 만약 배송일이 일요일(1) 이면 1을 더해서 월요일에, 그리고 아니라면

    둘째 줄, 만약 배송일이 토요일(7) 이면 1을 빼서 금요일에, 그리고 아니라면 (일요일 금요일 둘다 아니면)

    셋째 줄, 걍 원래 날짜에 배송 해라

     

    토요일은 금요일로, 일요일은 월요일 배송으로 바뀌었습니다.

    엑셀의 함수는 기본적으로 몇가지만 알아두면 나머지는 기본 함수의 조합입니다. VBA 굳이 쓰지 않더라도 엑셀의 기본 함수로 있는 것은 엄청 많습니다.


+ Recent posts