http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=4XDujvh64AB9NtY6DLewPEveoIwzBG48
난수를 사용, 특정 인원 수 임의목록 발생하기. 응용하면 꽤 여러 분야에 활용 가능할 것임.
|
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
2 |
이름 |
기수 |
주소 |
우편 |
|
|
|
|
|
|
|
|
|
|
|
매장 |
이름 |
기수 |
주소 |
우편 |
3 |
갑 |
1 |
서울 |
111 |
7 |
|
1 |
0 |
1 |
0 |
1 |
1 |
3 |
7 |
|
1 |
무 |
1 |
대전 |
555 |
4 |
을 |
1 |
부산 |
222 |
8 |
|
1 |
0 |
2 |
0 |
2 |
1 |
7 |
6 |
|
1 |
정 |
1 |
인천 |
444 |
5 |
병 |
1 |
대구 |
333 |
5 |
|
1 |
0 |
3 |
0 |
3 |
1 |
9 |
12 |
|
1 |
계 |
2 |
제주 |
123 |
6 |
정 |
1 |
인천 |
444 |
4 |
|
1 |
0 |
4 |
0 |
4 |
2 |
4 |
8 |
|
2 |
기 |
1 |
광주 |
666 |
7 |
무 |
1 |
대전 |
555 |
6 |
|
0 |
1 |
0 |
1 |
1 |
2 |
8 |
3 |
|
2 |
갑 |
1 |
서울 |
111 |
8 |
기 |
1 |
광주 |
666 |
3 |
|
0 |
1 |
0 |
2 |
2 |
2 |
10 |
9 |
|
2 |
경 |
2 |
경기 |
777 |
9 |
경 |
2 |
경기 |
777 |
12 |
|
2 |
0 |
1 |
0 |
1 |
3 |
5 |
5 |
|
3 |
병 |
1 |
대구 |
333 |
10 |
신 |
2 |
충청 |
888 |
9 |
|
2 |
0 |
2 |
0 |
2 |
3 |
11 |
11 |
|
3 |
임 |
2 |
강원 |
999 |
11 |
임 |
2 |
강원 |
999 |
11 |
|
2 |
0 |
3 |
0 |
3 |
4 |
6 |
4 |
|
4 |
을 |
1 |
부산 |
222 |
12 |
계 |
2 |
제주 |
123 |
10 |
|
2 |
0 |
4 |
0 |
4 |
4 |
12 |
10 |
|
4 |
신 |
2 |
충청 |
888 |
F3 =SMALL(IF((COUNTIF(F$2:F2,ROW(C$3:C$12))=0)*(C$3:C$12=C3),ROW(C$3:C$12)),INT(RAND()*(COUNTIF(C$3:C$12,C3)-COUNTIF(C$2:C2,C3)))+1)
H3 =IF(COUNTIF(G$2:G2,C3)<INT(COUNTIF(C$3:C$12,C3)/4)*4,1,0)
I3 =IF(H3>0,0,1)
J3 =IF(H3=0,0,IF(J2=4,1,J2+1))
K3 =IF(I3=0,0,MOD(COUNTIF(I$2:I2,1),4)+1)
L3 =J3+K3
M3 =IF(COUNTIF(M2:M$2,M2)<COUNTIF(L$3:L$12,M2),M2,M2+1)
N3 =MIN(IF((L$3:L$12=M3)*(COUNTIF(N$2:N2,ROW(L$3:L$12))=0),ROW(L$3:L$12),66000))
O3 =INDIRECT("F"&N3)
Q3 =M3
R3 =OFFSET($B$3,$O3-ROW($B$3),COLUMN()-COLUMN($R$2))
수식 중 F3, N3는 입력 후 CTRL+SHIFT+ENTER (배열수식) 해야 합니다. 이후 R3 잡아 오른쪽으로 U3까지, F3:U3 잡아 아래로 데이타 행 만큼 복사하면 결과표를 Q3:U12에 얻습니다. 로직을 간단히 설명하면, F열에서 난수를 발생, 기수별 리스트 인원의 순서를 섞습니다. H:K 열에서 순차적으로 1~4를 부여 (각 기수 총원을 4로 나눈 나머지 짜투리는 따로 모음), O열에서 섞은 행을 가져옵니다. 이로써 기수별, 매장별 인원이 정확히 4등분 되는 효과를 얻습니다. 난수가 들어 있으므로 한번 작업 후엔 결과표를 복사, 적당한 곳에 선택하여 붙여넣기-값-확인...해 두시는 것이 안정적입니다.
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
동점일 때 과목 점수 순으로 등수 매기기 (0) | 2008.11.14 |
---|---|
국영수 점수로 유형 나누기 (0) | 2008.11.14 |
한글 영어 분리 (0) | 2008.11.14 |
외부화일 참조 INDIRECT (0) | 2008.11.14 |
주민등록번호로 만나이 구하기 (2) (0) | 2008.11.14 |