논리/엑셀 프로그래밍

총액을 일정 비율 정수로 분할(랜덤) 식으로 표시

섬그늘 2008. 11. 14. 13:00

(정규 버전)

 

A

B

C

D

E

F

G

1

수식

 

10%

20%

30%

 

2

10+20+30+40

100

 

10

20

30

40

3

3+5+8+9

25

 

3

5

8

9

4

14+27+41+53

135

 

14

27

41

53

5

9+17+26+35

87

 

9

17

26

35

 

D2 =ROUND(D$1*$B2,0)
G2 =B2-SUM(D2:F2)
A2 =D2&"+"&E2&"+"&F2&"+"&G2

D2 잡아 오른쪽으로 F2까지 복사, D2:G2, A2 각각 잡아 아래로 데이타 행 만큼 채워 넣으시면 됩니다.

모든 수치는 정수로 표시됨을 함을 전제로 했습니다. 그 경우 수치 아귀가 맞아 들어가려면 G2와 같이 앞서 나온 넘을 모두 더해 전체값에서 빼줘야 말 되는 수식이 만들어집니다.

 

(랜덤버전)

 

A

B

C

D

E

F

G

H

I

J

K

L

M

1

수식

 

최저

1

 

 

 

비율

 

 

 

 

2

20+35+42+3

100

 

20

35

42

3

 

1%

 

20%

35%

42%

3

3+16+2+4

25

 

3

16

2

4

 

4%

 

12%

65%

8%

4

32+36+19+48

135

 

32

36

19

48

 

1%

 

24%

27%

14%

5

10+22+33+22

87

 

10

22

33

22

 

1%

 

11%

25%

38%

 

최저치가 1인 경우, 랜덤함수를 이용, 위와 같이 만들 수 있습니다. 수식은,

 

D2 =ROUND(K2*$B2,0)
G2 =B2-SUM(D2:F2)
I2 =E$1/B2
K2 =(100%-3*$I2)*RAND()+$I2
L2 =(100%-2*$I2-K2)*RAND()+$I2
M2 =(100%-$I2-L2-K2)*RAND()+$I2
A2 =D2&"+"&E2&"+"&F2&"+"&G2

을 따라가 보세요. 마찬가지로 D2 잡아 오른쪽으로 F2까지 복사, D2:M2, A2 각각 잡아 아래로 데이타 행 만큼 채워 넣으시면 됩니다. 이렇게 하면 최저치 1 미만의 값은 나오지 않게 됩니다.