아래 표를 긁어 엑셀시트에 붙인 후 수식 역시 마우스로 긁어 복사, 해당 주소창에 붙여 넣은 후 찬찬히 이해한 후 응용해 보세요.
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
1 |
4 |
|
|
|
|
|
|
|
|
|
2 |
0 |
9:00 |
간식시간 |
차수연 |
|
0 |
0 |
9:00 |
간식시간 |
차수연 |
3 |
1 |
|
수프 과일 |
|
|
0 |
1 |
|
수프 과일 |
|
4 |
8 |
15:30 |
영어동화 |
김희영 |
|
0 |
2 |
|
|
|
5 |
9 |
|
잭 콩나무 |
|
|
1 |
0 |
9:00 |
조회 |
김김김 |
6 |
6 |
14:00 |
구연동화 |
손수진 |
|
1 |
1 |
|
안부 |
|
7 |
7 |
|
걸리버 |
|
|
1 |
2 |
|
|
|
8 |
2 |
9:00 |
조회 |
김김김 |
|
2 |
0 |
12:00 |
점심 |
김선분 |
9 |
3 |
|
안부 |
|
|
2 |
1 |
|
카레 |
|
10 |
4 |
12:00 |
점심 |
김선분 |
|
2 |
2 |
|
|
|
11 |
5 |
|
카레 |
|
|
3 |
0 |
14:00 |
구연동화 |
손수진 |
12 |
|
|
|
|
|
3 |
1 |
|
걸리버 |
|
13 |
|
|
|
|
|
3 |
2 |
|
|
|
14 |
|
|
|
|
|
4 |
0 |
15:30 |
영어동화 |
김희영 |
15 |
|
|
|
|
|
4 |
1 |
|
잭 콩나무 |
|
16 |
|
|
|
|
|
4 |
2 |
|
|
|
A1 =INT(MAX(A2:A11)/2) ; 전체 블록 수, 참고/확인용, 없어도 됨
A2 =IF(B2="",A1+1,(SUMPRODUCT(ISNUMBER(B$2:B$11)*(B2>B$2:B$11))+SUMPRODUCT(ISNUMBER(B$1:B1)*(B2=B$1:B1)))*2)
F2 =INT((ROW()-ROW($F$2))/3) ; 블록 일련번호
G2 =MOD(ROW()-ROW($G$2),3) ; 블록 중 행 번호
H2 =IF(OR($G2=0,AND($G2=1,COLUMN()-COLUMN($H$2)=1)),VLOOKUP($F2*2+$G2,$A$2:$D$11,COLUMN()-COLUMN($F$2),0),"")
원본데이타는 예시와 같이 2행 보다는 밑에 오도록 위치시키십시오. (1행부터 시작하면 오류가 발생합니다.)
색상이 없는 셀은 드래그 복사입니다. H2 잡아 H2:J16에 복사해 넣으면 표가 완성됩니다. 표 완성 후 H열은 시간 서식을 따로 지정해주셔야 할 겁니다.
간단한 설명입니다. A2에서 일련번호를 매깁니다. F2, G2에 사전 번호를 나열하고 H2로써 그 번호를 넣어 VLOOKUP으로 원본데이타를 가져옵니다. 예시에서는 (그럴 일 없겠지만) 같은 시간의 블록데이타가 존재할 경우에도 순차적으로 빠짐없이 가져오도록 했습니다.
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
중복 VLOOKUP - 2 (0) | 2008.12.04 |
---|---|
[스크랩] Re: 엑셀에서 자료를 시간순으로 정렬을 하는데 그 정렬값 사이에 빈행을 1행 삽입 (0) | 2008.12.01 |
근무명령 확인 (n명 월 m회, 특정 요일, 주말 중복 금지) (0) | 2008.11.19 |
월 적금 복리 계산 (0) | 2008.11.14 |
근무시간 계산 (전일 퇴근시간에 따라 기준시간 보정, 지각시간 계산) (0) | 2008.11.14 |