ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Excel should take a range of numbers and calculate different num.. (https://www.excelbanter.com/excel-programming/309905-re-excel-should-take-range-numbers-calculate-different-num.html)

Tom Ogilvy

Excel should take a range of numbers and calculate different num..
 
from an old post:

one method using solver:
http://groups.google.com/groups?thre...gp13.phx .gbl

will find a single solution.

The below will find multiple solutions if they exist. As Harlan points out
in the above thread the problem can quickly escalate to be unsolvable, but
for the numbers you show, it is solvable.

http://groups.google.com/groups?thre....supernews.com

Put your numbers in Column B, starting in B1
Put the number to sum to in A1
Run TestBldBin

this will list all combinations in columns going to the right - obviously it
runs out of room at 256. If nothing is shown, there are no combinations
(for example 9999 with the sample 14 numbers).

Option Explicit
Sub bldbin(num As Long, bits As Long, arr() As Long)
Dim lNum As Long, i As Long, cnt As Long
lNum = num
' Dim sStr As String
' sStr = ""
cnt = 0
For i = bits - 1 To 0 Step -1
If lNum And 2 ^ i Then
cnt = cnt + 1
arr(i, 0) = 1
' sStr = sStr & "1"
Else
arr(i, 0) = 0
' sStr = sStr & "0"
End If
Next
' If cnt = 2 Then
' Debug.Print num, sStr
' End If
End Sub

Sub TestBldbin()
Dim i As Long
Dim bits As Long
Dim varr As Variant
Dim varr1() As Long
Dim rng As Range
Dim icol As Long
Dim tot As Long
Dim num As Long
icol = 0
Set rng = Range(Range("B1"), Range("B1").End(xlDown))
num = 2 ^ rng.Count - 1
bits = rng.Count
varr = rng.Value
ReDim varr1(0 To bits - 1, 0 To 0)
For i = 0 To num
bldbin i, bits, varr1
tot = Application.SumProduct(varr, varr1)
If tot = Range("A1") Then
icol = icol + 1
If icol = 255 Then
MsgBox "too many columns, i is " & i & " of " & num & _
" combinations checked"
Exit Sub
End If
rng.Offset(0, icol) = varr1
End If
Next
End Sub

--
Regards,
Tom Ogilvy


"Jarom" wrote in message
...
Is Excel capable of taking a range of numbers, lets say 1000 and derrive

the
different number or cell combinations to make a specific number that you

are
looking for. It would be a type of Goal Seek but it would not change the
cell, only add different cells across the range to find the number you are
looking for.

This would help in auditing, reconciliations, and numerous other

accounting
functions.
Thanks





All times are GMT +1. The time now is 07:19 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com