논리/엑셀 프로그래밍

옷치수 근사치 순서로 출력

섬그늘 2008. 11. 14. 12:49

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=cDbSS+z5OB57thgJ+r9LO/bcn7FE3fR/

 

(아래는 브랜드를 입력하면 그것만 탐색하도록 바꾼 수식으로 M3가 추가, B4가 수정되었습니다.)

 

 

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

2

 

출력

5

 

 

 

 

 

 

 

입력

 

가슴

다리

3

 

브랜드

규격

가슴

다리

 

 

 

 

나들이

4

20

82

82

4

4

나들이

스몰

18

80

80

4

4

6

 

브랜드

규격

가슴

다리

5

3

 

 

19

81

81

4

4

3

 

나들이

스몰

20

82

83

6

1

 

 

20

82

83

4

4

1

 

나들이

미듐

20

82

83

7

2

 

미듐

20

82

83

4

7

1

 

나들이

스몰

19

81

81

8

5

 

 

22

83

85

4

4

6

 

나들이

스몰

18

80

80

9

6

 

라지

25

85

87

4

9

13

 

나들이

스몰

22

83

85

10

7

 

 

26

85

88

4

4

15

 

나들이

라지

25

85

87

11

0

아씨방

스몰

18

81

80

11

11

5

 

 

 

 

 

 

12

0

 

 

19

81

82

11

11

2

 

 

 

 

 

 

13

0

 

 

20

82

83

11

11

1

 

 

 

 

 

 

14

0

 

미듐

20

82

83

11

14

1

 

 

 

 

 

 

15

0

 

 

22

83

85

11

11

6

 

 

 

 

 

 

16

0

 

라지

25

85

86

11

16

12

 

 

 

 

 

 

17

0

 

 

26

86

88

11

11

16

 

 

 

 

 

 

 

데이타가 C4:G17에 있을 때 (몇 행이라도 괜찮음),

M3 =IF(L3="","",VLOOKUP(L3,C$4:H$17,6,0))

H4 =IF(C4<>"",ROW(),H3),    I4 =IF(D4<>"",ROW(),H3) 

J4 =ABS(N$3-E4)+ABS(O$3-F4)+ABS(P$3-G4)

B4 =IF(L$3="",RANK(J4,J$4:J$17,1)+COUNTIF(J$3:J3,J4),IF(H4=M$3,SUMPRODUCT((H$4:H$17=M$3)*(J$4:J$17<J4))+SUMPRODUCT((H$3:H3=M$3)*(J$3:J3=J4))+1,0))

L5 =IF(ROW()-ROW($L$5)>$D$2,"",INDIRECT(ADDRESS(VLOOKUP(ROW(A1),$B$4:$I$17,7,0),COLUMN(C$3))))

M5 =IF(ROW()-ROW($L$5)>$D$2,"",INDIRECT(ADDRESS(VLOOKUP(ROW(B1),$B$4:$I$17,8,0),COLUMN(D$3))))

N5 =IF(ROW()-ROW($L$5)>$D$2,"",VLOOKUP(ROW(C1),$B$4:$I$17,COLUMN(D$1),0))

 

N5를 O5:P5에 복사, B4, H4:JK, L5:P5를 각각 잡아 아래로 데이타 행 만큼 드래그 복사하면 표가 완성됩니다. 이제 N3:P3에 옷치수를 입력하면 D2에 지정한 행 만큼 비슷한 치수의 상품이 출력되며, L3에 브랜드를 입력하면 그 브랜드의 품목만 출력될 겁니다. (다만 D2의 출력지정 행수 보다 품목 수가 작으면 그 행 이후는 #N/A 에러가 뜹니다.)