논리/엑셀 프로그래밍

표 재정렬 ; 대분류1 * n, m행을 대분류1 * c행으로 고정 출력

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

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=hXqVIopd/bGsRBVqrElA/cPuJFxT45Kl

 

함수여야 한다면 아래를 참고하여 응용해 보세요.

 

 

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

1

제품명

등급

수량

중량

 

구분

 

 

 

 

 

제품명

등급

수량

중량

2

ADF003

BJ

40

2,320

 

BJ

1

1

1

0

 

ADF003

BJ

40

2,320

3

 

BN

5

233

 

BN

1

2

1

1

 

 

BN

5

233

4

 

소계

45

2,553

 

CJ

1

5

1

2

 

 

CJ

0

0

5

FDGG6

BJ

16

928

 

CN

2

1

1

3

 

 

CN

0

0

6

 

CN

3

149

 

소계

2

4

1

4

 

 

소계

45

2,553

7

 

소계

19

1,077

 

 

2

5

2

0

 

FDGG6

BJ

16

928

8

AFD5FG

BJ

16

928

 

 

3

1

2

1

 

 

BN

0

0

9

 

BN

7

358

 

 

3

2

2

2

 

 

CJ

0

0

10

 

CJ

5

290

 

 

3

3

2

3

 

 

CN

3

149

11

 

CN

8

524

 

 

3

4

2

4

 

 

소계

19

1,077

12

 

소계

36

2,100

 

 

3

5

3

0

 

AFD5FG

BJ

16

928

13

 

 

 

 

 

 

 

 

3

1

 

 

BN

7

358

14

 

 

 

 

 

 

 

 

3

2

 

 

CJ

5

290

15

 

 

 

 

 

 

 

 

3

3

 

 

CN

8

524

16

 

 

 

 

 

 

 

 

3

4

 

 

소계

36

2,100

 

G2 =G1+IF(A2="",0,1)                                                   ; A열을 수치로 구분 표시
H2 =MATCH(B2,F$2:F$6,0)                                          ; B열 데이타를 수치로 구분 표시
I2 =IF(J2=0,1,0)+I1                                                       ; 출력열 대분류 (L열)
J2 =MOD(ROW(A1)-1,5)                                              ; 출력열 중분류 (M열)
L2 =IF(J2,"",INDEX(A$2:A$12,MATCH(I2,G$2:G$12,0)))  ; 중분류가 0일 경우 해당 대분류 문자열 출력
M2 =OFFSET(F$2,J2,0)                                               ; 중분류 문자열 행 순서로 표시
N2 =SUMPRODUCT(($G$2:$G$12=$I2)*($H$2:$H$12=$J2+1)*C$2:C$12)   ; 해당 데이타를 원본에서 가져 옴

 

F2:F6에 구분을 미리 만들어 둔 후, G2:H2 잡아 G12:H12까지 복사, N2를 O2에 복사한 후 I2:O2 잡아 아래로 데이타가 다 나올 때 까지 복사하면 표가 완성됩니다.