急EXCEL中如何从一组数中找到2-5个数求和等于期望的某定值?

下列数值中2-5个数求和等于期望值699.24,可以叠加求和。急求高手帮帮忙!!分值 不够可追加分数
446.53
354.95
300.06
279.28
263.27
263.14
249.92
248.8
244.73
244.69
243.26
233.33
191.43
172.5
172.39
170.96
158.61
157.21
152.34
147.55
117.64
115.53
112.81
110.21
109.5
108.85
108.67
108.44
102.42
101.47
97.5
97.5
97.5
97.5
97.5
97.5
97.5
97.5
97.5
97.5
97.5

帮你弄了一个,首先把那41个数放到A列,B1放期望值699.24,执行下面的宏,在C列显示结果:
Sub Macro()
Dim i, j, k, l, m, r As Integer
Dim s As Single
r = 1
s = Cells(1, 2)

'查找2个数的和
For i = 1 To 40
For j = i + 1 To 41
If Cells(i, 1) + Cells(j, 1) = s Then
Cells(r, 3) = Cells(i, 1) & "+" & Cells(j, 1) & "=" & s: r = r + 1
End If
Next j
Next i

'查找3个数的和
For i = 1 To 39
For j = i + 1 To 40
For k = j + 1 To 41
If Cells(i, 1) + Cells(j, 1) + Cells(k, 1) = s Then
Cells(r, 3) = Cells(i, 1) & "+" & Cells(j, 1) & "+" & Cells(k, 1) & "=" & s: r = r + 1
End If
Next k
Next j
Next i

'查找4个数的和
For i = 1 To 38
For j = i + 1 To 39
For k = j + 1 To 40
For l = k + 1 To 41
If Cells(i, 1) + Cells(j, 1) + Cells(k, 1) + Cells(l, 1) = s Then
Cells(r, 3) = Cells(i, 1) & "+" & Cells(j, 1) & "+" & Cells(k, 1) & "+" & Cells(l, 1) & "=" & s: r = r + 1
End If
Next l
Next k
Next j
Next i

'查找5个数的和
For i = 1 To 37
For j = i + 1 To 38
For k = j + 1 To 39
For l = k + 1 To 40
For m = l + 1 To 41
If Cells(i, 1) + Cells(j, 1) + Cells(k, 1) + Cells(l, 1) + Cells(m, 1) = s Then
Cells(r, 3) = Cells(i, 1) & "+" & Cells(j, 1) & "+" & Cells(k, 1) & "+" & Cells(l, 1) & "+" & Cells(m, 1) & "=" & s: r = r + 1
End If
Next m
Next l
Next k
Next j
Next i

End Sub

执行结果:
248.8+233.33+108.67+108.44=699.24
244.73+191.43+147.55+115.53=699.24追问

厉害~谢谢了加个好友吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-09
使用规划求解追问

..我在这方面很菜,看了刚才你给的网址,还是不会,能帮我做下吗?可能追加分值。谢谢

参考资料:http://zhidao.baidu.com/question/233656105.html

相似回答