본문 바로가기
WeekdayLife/excel

[엑셀] 날짜에 따라 테이블 색 변경하기 / WBS 서식 만들기

by JO_i 2022. 12. 5.

날짜 수식은 괴롭다

엑셀이든 DB든 날짜를 계산하는 작업은 짜증나는 작업이다. 사무직이라면 반드시 한번은 보게되는 WBS, 프로젝트 관리 툴이 엄청나게 많아졌지만, 아직 WBS는 역시 엑셀이다. WBS를 여러번 만들다보면 날짜 수식을 잘하게 되는 날이 올것이다.

 

흔해 빠진 WBS 모양은 아래와 같을 것이다. 시작일과 종료일을 기준으로 기간을 적고, 일자대로 색을 칠해야한다.

두가지 짜증나는 작업이 동반되는 것을 예상할 수 있다.

_시작일과 종료일 사이 기간에 해당하는 날짜별에 색칠을 해야한다.

_칠해준 기간에서 주말을 빼줘야하고, 공휴일도 빼줘야한다.

 

아래 그림은 대략 완성된 이미지이다. 주말은 회색처리를 했으며, 친절하게 오늘 날짜에는 빨간색 하일라이트도 넣어줬다. 살짝 애매한건 공휴일이다.

 

 

 

기간 내 날짜 색칠

각 셀에 시작일과 종료일 사이에 있는지 여부를 1, 0로 기재해주고, 이에 따라 조건부 서식을 입혀주면 된다.

내가 사용한 과정은 아래와 같다. 날짜 행과 시작일, 종료일 열에 이름정의를 해주고, 아래 수식을 입력해 주면 끝이다.

=IF(AND(일자>=시작일, 일자<=종료일),1,0)

팁은 영역 참조시 날짜 행과 시작일/종료일 열에 대한 절대참조를 붙이다가 실수할 수 있으니, 이름정의를 사용하라는 것이다. 

 

 

 

조건부 서식으로 셀 값이 1과 0일때, 색을 지정해 준다. 이때, 1, 0이 보이지 않도록 텍스트 색상도 바꿔준다. 

 

 

 

주말 처리

날짜가 토요일 또는 일요일이라면, 조건부 서식으로 회색칠을 해준다.

아래와 같은 수식으로 처리가 가능하다.

=OR(WEEKDAY(F$10)=1,WEEKDAY(F$10)=7)

 

 

 

오늘 날짜 하일라이트

뭐... 거의 WBS에서는 무쓸모하겠지만, 오늘날짜에 해당하면 빨간색 처리를 추가로 해주었다.

=F$10=TODAY()

 

 

 

공휴일 처리

이제 공휴일 처리이다. 깔끔하게 셀안에서 처리할 수도 있겠지만? 매번 바뀔 수 있으니, 별도 행을 추가 해 주었다. 나중에 이는 숨김처리 하는 것이 좋겠다. 공휴일 리스트의 테이블에서 공휴일을 0과 1처리해주었다.

{=SUM(IF(F16 = 공휴일, 1))}

 

마지막으로 period 열에서, 아래 수식으로 공휴일을 차감해주면 길고 긴 작업이 끝이다.

=NETWORKDAYS(C18,D18,공휴일)

 

 

 

역시 글로보면 확 와닿지는 않게 되는 것 같다.

 

끝.