Trending News
如何用excel在一排數字中找出五個相加為一定數值的程式
例如a=10 ,b=12, c=15, d=18, e=12 , f=15, g=14, h=9, i=14, j=5, k=2
L=6 ,M=8......... 五個相加值為47
如何利用excel寫出任意五個值相加為一定值,並排列出來是那五個
謝謝各位
可否將排列的數全部顯示在excel上
我不懂VB,借一本巨集書想把數值直行排列就已經弄一整天了
五數總合
47
次數總合
110
212次數由上而下排列
315107713
418714911
512251214
615911104
714116136
89
91447474747
105
112
126
138
144
1520
因字數限制可否寄excel檔給你
1 Answer
- 梁先生Lv 68 years agoFavorite Answer
下載如上檔案參考,有問題再討論...
2013-01-23 11:22:06 補充:
'隨機五個儲存格之和=設定和
'S.C. Liang 2013/1/23
Public Sub aa()
Dim ry() As Long '全部儲存格之陣列值
Dim ry_f(1 To 5) As Long '隨機抽五個儲存格之位置
Dim ry_x(1 To 5) As Long '抽五個儲存格之值
Dim x As Long
x = InputBox("請輸入五個相加之和", "輸入總和", 47) '設定總和
column_r = [a1].End(xlToRight).Column '資料之總筆數
ReDim ry(1 To column_r)
For i = 1 To column_r '儲存格之值轉入陣列
ry(i) = Cells(1, i)
Next
Do '循環計算總和
'隨機抽取五位儲存格之位置
For j = 1 To 5
重取:
flage = Int(column_r * Rnd + 1)
ry_f(j) = flage
ry_x(j) = ry(flage)
For m = 1 To j
If m <> j Then '不比對自己
If ry_f(j) = ry_f(m) Then GoTo 重取 '抽取位置有重複就重新再隨機取位置
End If
Next m
Next j
'計算總和
sum_5 = 0
For Each r In ry_x
sum_5 = sum_5 + r
Next
Loop Until x = sum_5 '判定計算總和=設定總合就結束循環
'在儲存格A3填入抽取的儲存格及總和
[a3] = Chr(64 + ry_f(1)) & "1 + " & Chr(64 + ry_f(2)) & "1 + " & Chr(64 + ry_f(3)) & "1 + " & Chr(64 + ry_f(4)) & "1 + " & Chr(64 + ry_f(5)) & "1 = " & sum_5
End Sub
1.本巨集之隨機不重複抽數是用編程指令控制的(意見欄是用EXCEL函數控制)
2.下載如下檔案參考
2013-01-23 15:31:45 補充:
下載如下檔案參考
2013-01-24 08:33:54 補充:
2013-01-24 06:01:43 補充的說明項,看不懂是什麼意思,
煩請再陳述清楚一下...
2013-01-25 09:04:47 補充:
寄附檔是最好的,順便把要求寫詳細!
2013-01-25 11:30:39 補充:
參考如下,不知是否所需!