你好,我是新来的,希望你们能帮助我。
请注意,这个主题与其他一些主题类似,但没有一个回答这个确切的问题。
这与这个未解答的问题完全相同: https://stackoverflow.com/questions/31248379/vba-to-extract-values-from-a-list-until-the-sum-is-within-a-certain-range
我的问题如下:作为 Excel 用户,我有一列数字,比如
5, 6, 7, 8, 8, 9, 14, 17
并了解所有落在 25 - 35 范围内的和的组合。我可能只有 4-5 个条目/列号。
还有一个限制:我希望组合尽可能小,但仍在范围内。
因此 17 + 9 = 26 是好的,但 17 + 9 + 5 = 31 是不好的(不应该计算),因为该组大于必要的,尽管它仍然在范围内。
所以总的来说,我想要获得一列中所有可能的数字组合,这些数字的组合总和落在一个特定的范围内,并且总和尽可能小,但仍在该范围内。
希望有人能帮忙!如果没有,有人知道我可以在哪里找到可以自学编码的信息吗 :)
欢呼吧,祝你周末愉快!!
答案1
将您的价值观放入列中A并在列中乙地方0就在他们旁边。
然后在C9输入公式:
=SUMPRODUCT(A1:A8*B1:B8)
然后输入并运行这个简短的宏:
Sub ABC()
Dim i As Long, s As String
Dim j As Long, K As Long
Dim wf As WorksheetFunction
Dim answer As String
Set wf = Application.WorksheetFunction
K = 1
For i = 0 To 255
s = wf.Dec2Bin(i, 8)
For j = 1 To 8
Cells(j, 2).Value = Val(Mid(s, j, 1))
Next j
If Range("C9").Value > 24 And Range("C9").Value < 36 Then
answer = ""
For j = 1 To 8
If Cells(j, 2) = 1 Then answer = answer & "," & Cells(j, 1)
Next j
Cells(K, 4) = Mid(answer, 2)
K = K + 1
End If
Next i
End Sub
您将获得列中列出的所有 64 个解决方案德:
这是基于 John Coleman 的建议。
答案2
Excel 用户经常会遇到这个问题。有一个 Excel 插件可以轻松找到符合条件的所有数字组合,名为和匹配
随附的图片解释了如何设置条件以查看所有符合条件的组合。通过修改条件,您可以使用插件的免费试用版获得解决方案。