http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=W+/EJUjpW3EKsIptUDST+1IEqCqam0jq
이 질문에 대한 답은 VBA가 정법일 겁니다만 함수만으로도 방법은 있습니다. (VBA는 위 링크의 park_jang님 답변 참조)
|
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
2 |
번호 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
3 |
횟수 |
1 |
0 |
3 |
2 |
4 |
2 |
3 |
2 |
4 |
1 |
2 |
4 |
1 |
2 |
1 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
횟수 |
번호 |
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
0 |
2 |
1 |
|
, 2 |
|
|
|
|
|
|
|
|
|
|
|
7 |
1 |
1, 10, 13, 15 |
4 |
|
, 1 |
, 1, 10 |
, 1, 10, 13 |
, 1, 10, 13, 15 |
|
|
|
|
|
|
|
|
8 |
2 |
4, 6, 8, 11, 14 |
5 |
|
, 4 |
, 4, 6 |
, 4, 6, 8 |
, 4, 6, 8, 11 |
, 4, 6, 8, 11, 14 |
|
|
|
|
|
|
|
9 |
3 |
3, 7 |
2 |
|
, 3 |
, 3, 7 |
|
|
|
|
|
|
|
|
|
|
10 |
4 |
5, 9, 12 |
3 |
|
, 5 |
, 5, 9 |
, 5, 9, 12 |
|
|
|
|
D6 =COUNTIF(C$3:Q$3,B6)
D5 =MAX(D6:D10)
F6 =IF(COLUMN(A1)>$D6,"",E6&", "&INDEX($C$2:$Q$2,1,SMALL(IF($C$3:$Q$3=$B6,COLUMN($C$3:$Q$3)),COLUMN(A1))-COLUMN($B$2)))
C6 =RIGHT(INDIRECT(ADDRESS(ROW(),COLUMN(E6)+D6)),LEN(INDIRECT(ADDRESS(ROW(),COLUMN(E6)+D6)))-2)
F6은 수식 입력 후 CTRL+SHIFT+ENTER (배열수식) 해야 합니다. F6 잡아 D5 수치만큼 오른쪽으로 (예시에서는 5칸) 드래그 복사, C6:J6 잡아 아래로 데이타 행수 만큼 복사하면 표가 완성됩니다. F6은 순차적으로 해당데이타를 가져와 문자열로 붙입니다. C6은 =RIGHT(A1,LEN(A1)-1) 의 간단한 구조로, 결과문자열 앞의 ", " 두 글자를 없애고 완성된 문자열을 가져오는데, 열번호가 유동적이므로 INDIRECT로 유동참조를 한 것입니다. 엑셀화일을 텍스트화일로 저장하는 것은 '다른 이름으로 저장'을 선택, 화일 형식을 지정해 보세요.
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
검색어 포함된 모든 항목 나열 (0) | 2008.11.14 |
---|---|
같은 열 중복데이타 모두 나열 (VLOOKUP/MATCH 유동참조) (0) | 2008.11.14 |
두 날짜 사이 년/월/일 차이 구하기 (0) | 2008.11.14 |
최근 데이터 n개 합산 (SUM 유동참조) (0) | 2008.11.14 |
주간 특정 거래처 제품 매출 수량 집계 (0) | 2008.11.14 |