논리/엑셀 프로그래밍

근무조 편성, 휴일은 역순

섬그늘 2008. 11. 14. 11:48

  

 

B

C

D

E

F

G

H

I

J

K

L

2

날자

 

이름

 

 

 

 

휴일목록

 

 

명단

3

2008-02-14

일지매

0

2

0

 

2008-03-01

삼일절

 

홍길동

4

2008-02-15

갑돌이

0

3

0

 

2008-04-01

창립기념일

 

일지매

5

2008-02-16

홍길동

1

3

1

 

2008-05-05

어린이날

 

갑돌이

6

2008-02-17

아라치

1

3

6

 

2008-05-12

석가탄신일

 

갑순이

7

2008-02-18

갑순이

0

4

6

 

2008-06-06

현충일

 

마루치

8

2008-02-19

마루치

0

5

6

 

2008-08-15

광복절

 

아라치

9

2008-02-20

아라치

0

6

6

 

2008-09-13

추석

 

 

10

2008-02-21

홍길동

0

1

6

 

2008-09-14

추석

 

 

11

2008-02-22

일지매

0

2

6

 

2008-09-15

추석

 

 

12

2008-02-23

마루치

1

2

5

 

2008-10-03

개천절

 

 

13

2008-02-24

갑순이

1

2

4

 

2008-12-25

기독탄신일

 

 

14

2008-02-25

갑돌이

0

3

4

 

 

 

 

 

15

2008-02-26

갑순이

0

4

4

 

 

 

 

 

16

2008-02-27

마루치

0

5

4

 

 

 

 

 

17

2008-02-28

아라치

0

6

4

 

 

 

 

 

18

2008-02-29

홍길동

0

1

4

 

 

 

 

 

19

2008-03-01

갑돌이

1

1

3

 

 

 

 

 

20

2008-03-02

일지매

1

1

2

 

 

 

 

 

 

C3 =TEXT(B3,"aaa")

D3 =IF(E3,INDEX(L$3:L$8,MOD(G2-2,6)+1),INDEX(L$3:L$8,MOD(F2,6)+1))

E3 =IF(AND(WEEKDAY(B3,2)<6,COUNTIF(I$3:I$13,B3)=0),0,1)

F3 =IF(E3,F2,MATCH(D3,L$3:L$8,0))

G3 =IF(E3,MATCH(D3,L$3:L$8,0),G2)

 

C3:G3 잡아 아래로 주욱 복사하신 후 최초 평일, 최초 휴일(예시에서는 D3, D5)에 근무할 인원을 지정해주시면 표가 자동으로 완성됩니다. 위 표는 토요일을 휴일로 간주했는데 그렇지 않고 토요일이 평일이라면 E3의 수식을

 

E3 =IF(AND(WEEKDAY(B3,2)<7,COUNTIF(I$3:I$13,B3)=0),0,1)

 

로 바꾸시면 됩니다. 이후 조건부수식을 사용하여 ('수식이' 창에 =OR(WEEKDAY($B3,2)=7,COUNTIF($I$3:$I$13,$B3)>0) 으로 빨강, =WEEKDAY($B3,2)=6 로 파랑등으로 셀 서식을 조정하면 예시의 표와 같이 표현됩니다.