논리/엑셀 프로그래밍

2*n 배열을 n*m 배열로 재정렬 (Dye Size)

섬그늘 2008. 11. 14. 13:27

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=lAVHiYutpz8Ml9w992MmoZf4p/5XgzNA

 

A

B

C

D

E

F

G

H

I

J

1

 

Dye

Size

 

4

 

1

2

3

4

2

1

R, 1

2

1

3

 

R, 1

R, 34

R, 20

Q, 14

3

1

R, 1

3

2

 

1

2

40

100

5

4

1

R, 1

3

3

 

2

3

41

110

5

5

2

R, 34

40

1

 

3

3

 

 

6

6

2

R, 34

41

2

 

 

 

 

 

 

7

3

R, 20

100

1

 

 

 

 

 

 

8

3

R, 20

110

2

 

 

 

 

 

 

9

4

Q, 14

5

1

 

 

 

 

 

 

10

4

Q, 14

5

2

 

 

 

 

 

 

11

4

Q, 14

6

3

 

 

 

 

 

 

A2 =IF(COUNTIF(B$1:B1,B2),0,1)+A1
D2 =IF(A2=A1,D1,0)+1
E1 =MAX(A2:A11)  ; dye 종류 수
E2 =MAX(D2:D11) ; dye 당 size 최대 수
G1 =COLUMN(A1)
G2 =IF(COLUMN(A1)>$E1,"",VLOOKUP(COLUMN(A1),$A2:$B11,2,0))
F3 =ROW(A1)
G3 =IF($F3>COUNTIF($A$2:$A$11,G$1),"",OFFSET($C$1,SUMPRODUCT(($A$2:$A$11=G$1)*($D$2:$D$11=$F3)*ROW($A$2:$A$11))-ROW($C$1),0))

 

A2, D2 각각 오른쪽 아래 채우기 핸들 더블클릭 (데이타 행 마지막까지 자동채우기), G1:G2 잡아 오른쪽으로 E1(dye 수) 만큼 복사, F3:G3 잡아 아래로 E2(size 최대 수) 만큼 복사, G3:Gn 잡아 오른쪽으로 복사하면 표가 완성됩니다. (다만 원본데이타인 B:C열은 미리 예시하신 것 처럼 정렬이 되어 있어야 합니다.)