|
B |
C |
D |
E |
F |
H |
2 |
업체명 |
품목코드 |
품목명 |
|
|
|
3 |
갑 |
100 |
신라면 |
|
B4 |
|
4 |
을 |
107 |
진로 |
|
B5 |
|
5 |
갑 |
102 |
새우깡 |
|
B6 |
|
6 |
을 |
108 |
참이슬 |
|
B7 |
|
7 |
갑 |
104 |
사발면 |
|
B8 |
|
8 |
정 |
105 |
맛동산 |
|
B9 |
|
9 |
|
|
|
|
|
|
10 |
업체명 |
품목코드 |
품목명 |
|
2 |
업체명 위치 |
11 |
을 |
107 |
진로 |
|
FALSE |
F11이 에러? |
12 |
|
108 |
참이슬 |
|
107 |
처음 품목코드 |
13 |
정 |
105 |
맛동산 |
|
107 |
에러이면 null |
14 |
갑 |
100 |
신라면 |
|
2 |
위 코드 위치 |
15 |
|
102 |
새우깡 |
|
B4 |
위 업체 위치 |
16 |
|
104 |
사발면 |
|
을 |
위 업체명 |
17 |
|
|
|
|
108 |
다음 검색 수행 |
18 |
|
|
|
|
108 |
종합 |
데이타베이스가 B2:D8에 있을 때,
1. F3 ="B"&(ROW()+1) 이하 F8까지 복사
2. 출력시트의 B11 이하는 공백 상태에서 출발
3. C11 =IF(ISERROR(MATCH(B11,$B$3:$B$8,0)),"",INDEX($B$3:$C$8,MATCH(B11,$B$3:$B$8,0),2))
4. D11 =IF(ISERROR(VLOOKUP(C11,C$3:D$8,2,FALSE)),"",VLOOKUP(C11,C$3:D$8,2,FALSE))
D11 잡아 D12까지 복사해 둠.
5. C12 =IF(B12="",IF(ISERROR(VLOOKUP(INDIRECT("B"&(MATCH(C11,C$3:C$8,0)+2)),INDIRECT(INDEX(F$3:F$8,MATCH(C11,C$3:C$8,0),1)):F$8,2,FALSE)),"",VLOOKUP(INDIRECT("B"&(MATCH(C11,C$3:C$8,0)+2)),INDIRECT(INDEX(F$3:F$8,MATCH(C11,C$3:C$8,0),1)):F$8,2,FALSE)),IF(ISERROR(MATCH(B12,$B$3:$B$8,0)),"",INDEX($B$3:$C$8,MATCH(B12,$B$3:$B$8,0),2)))
6. C12:D12 잡아 원하는 만큼 아래로 복사하면 작업시트 완성
(해설 셀) ; C12셀의 의미 - F18을 한 셀로 만든 것임.
F10 =MATCH(B11,$B$3:$B$8,0)
F11 =ISERROR(F10)
F12 =INDEX($B$3:$C$8,F10,2)
F13 =IF(F11,"",F12)
F14 =MATCH(C11,C$3:C$8,0)
F15 ="B"&(F14+2)
F16 =INDIRECT(F15)
F17 =VLOOKUP(F16,INDIRECT(INDEX(F$3:F$8,F14,1)):F$8,2,FALSE)
F18 =IF(B12="",IF(ISERROR(F17),"",F17),IF(F11,"",F12)
설명 : C12셀에서, 왼쪽 업체명이 비어 있으면 바로 위 코드명의 업체의 상품이 더 있는지 칸을 하나 내려 검색함. 만약 없으면(VLOOKUP이 ISERROR를 발생시키면) C12셀을 빈 칸 그대로 두고, 있으면 다음 코드를 출력함. 만약 왼쪽 업체명이 차 있으면 처음 품명코드를 찾아 출력(C11셀과 동일)함.
이제 B11부터 원하는 업체명을 입력하면 코드, 품명을 있는 대로 찾아 아래로 출력합니다.
좀 더 간단하게 할 수 있을지는 모르지만 그건 포기했습니다. 그리고 데이타베이스의 마지막 업체명을 입력하면 줄줄이 같은 것이 밑에 채워지는데 엑셀의 한계인 듯...즉, VLOOKUP(데이타, B9:F8, 2,FALSE)가 에러로 인식되지 않습니다 --+
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
같은 양식 여러 개 데이타 추출 (0) | 2008.11.13 |
---|---|
주소의 동만 표시하기 (0) | 2008.11.13 |
표에 없는 숫자 표시 (0) | 2008.11.13 |
HLOOKUP (0) | 2008.11.13 |
LSM (최소자승법) (0) | 2008.11.13 |