http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=KAUEKQPInFcxW22cXgWDy5Msx+oHVRob
제시하신 과제는 주어진 입력으로 출력을 어떻게 설계할 것인가 하는, 프로그래밍의 성격입니다. 그 틀을 설계한 후에야 엑셀이 기능할 수 있는 것이지요. (엑셀 함수는 각각의 기능을 할 따름이며 말씀하신 과제를 한 방에 처리해주는 함수란 없습니다.)
아래는 제 관점으로 봤을 때 만들어 본 풀이입니다. 표를 마우스로 긁어 엑셀시트의 해당 영역에 붙이고 수식 역시 순서대로 마우스로 긁어 복사, 해당 주소 창에 붙인 후 표를 완성, 하나하나 뜯어 이해해 보세요. ($가 붙는 절대참조, $가 붙지 않는 상대참조 역시 나중에 공부해 보십사 합니다 - 오픈백과에 잘 나와 있습니다.)
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
1 |
프로젝트 |
A |
B |
C |
D |
E |
|
|
|
|
2 |
매출액 |
500 |
600 |
1,200 |
1,800 |
3,000 |
|
부장 |
500 |
20 |
3 |
소요일수 |
5 |
7 |
14 |
20 |
30 |
|
|
|
|
4 |
부장 |
0 |
0 |
0 |
0 |
1 |
|
부장 |
10 |
20 |
5 |
차장 |
0 |
0 |
0 |
1 |
0 |
|
차장 |
9 |
18 |
6 |
과장 |
1 |
1 |
2 |
1 |
1 |
|
과장 |
8 |
16 |
7 |
대리 |
2 |
2 |
1 |
2 |
1 |
|
대리 |
7 |
14 |
8 |
주임 |
2 |
2 |
2 |
1 |
2 |
|
주임 |
6 |
12 |
9 |
총단위 |
68 |
68 |
70 |
74 |
74 |
|
|
|
|
10 |
인건비 |
340 |
476 |
980 |
1,480 |
2,220 |
|
|
|
|
11 |
총수익 |
160 |
124 |
220 |
320 |
780 |
|
|
|
|
12 |
수익/일 |
32 |
18 |
16 |
16 |
26 |
|
|
|
|
13 |
순위 |
1 |
3 |
5 |
4 |
2 |
|
|
|
J2 =I2/25 ; 부장의 일당. (I2의 부장 월급)을 근무일수로 나눔.
J4 =J$2*I4/I$4 ; 부장을 기준으로 가중치를 넣은 각 직급 일당. J4 잡아 J8까지 복사.
B9 =SUMPRODUCT(B4:B8,$J4:$J8) ; 하루에 들어 가는 인건비
B10 =B9*B3 ; 총 소요일에 투입 인건비
B11 =B2-B10 ; 총 수익
B12 =B11/B3 ; 하루 당 수익 (수익률에 해당함)
B13 =RANK(B12,$B12:$F12) ; 수익률 기준 순위 매김
B9:B13 잡아 복사, 오른쪽으로 채워넣으면 표가 완성됩니다. 위 표는 하나의 예시일 뿐, 고려해야 할 요인이 숱하게 많을 겁니다. (예: 프로젝트가 성공하지 못할 경우 risk를 어떻게 표에 구현할까, 단기 수익률 대비 장기 총수익의 중요도는 어떻게 가중치를 넣을까 따위)
여하튼 위 예시에서 제가 말하고자 하는 것은 제시하신 과제의 유형 상 표의 틀을 어떻게 짜느냐 하는 것이 가장 긴요한데 엑셀이 그 설계를 사람 대신 해주진 못한다는 겁니다. 설계에 따라 엑셀 함수를 어떻게 효과적으로 구현할 것인가는 부차적으로 기능을 익힐 성격이지요. (어느 정도 함수를 익힌 후엔 그 함수를 고려하여 설계하는 단계로 점프하게 될 겁니다.)
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
복수조건을 충족하는 중복 없는 숫자의 개수 (0) | 2008.11.14 |
---|---|
떨어진 교실번호 개체 고유번호 부여, 가로-세로 재정렬 (0) | 2008.11.14 |
3교대 8명씩 돌아가는 근무표 (0) | 2008.11.14 |
기준 구간이 많은 시간 계산 (0) | 2008.11.14 |
중복 없는 난수 발생, 시간 구간 계산 (0) | 2008.11.14 |