Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default easy problem for programmers

As I'm no programmer I need help from you. I have a column
with a range of values (amounts). In a second column I
have only 1 amount(total). Now I want to know every
combination of amounts from the first row that added
together equals the total amount of the second row. It may
be a combination of 2, 3 or more values. The combinations
that match should be copied to a new column. I hope I made
myself clear. How can this be done ? Thanks.
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default easy problem for programmers

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 254. If nothing is shown, there are no combinations
the more numbers you have in column B, the longer it will take to calculate.
I am sure there is some relatively small finite number of numbers where this
will blow up, but I haven't really given it much thought.


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

"Freddy" wrote in message
...
As I'm no programmer I need help from you. I have a column
with a range of values (amounts). In a second column I
have only 1 amount(total). Now I want to know every
combination of amounts from the first row that added
together equals the total amount of the second row. It may
be a combination of 2, 3 or more values. The combinations
that match should be copied to a new column. I hope I made
myself clear. How can this be done ? Thanks.



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default easy problem for programmers

Freddy,

Contact me privately, and I will send you a workbook that does just what you
want.

HTH,
Bernie
MS Excel MVP

"Freddy" wrote in message
...
As I'm no programmer I need help from you. I have a column
with a range of values (amounts). In a second column I
have only 1 amount(total). Now I want to know every
combination of amounts from the first row that added
together equals the total amount of the second row. It may
be a combination of 2, 3 or more values. The combinations
that match should be copied to a new column. I hope I made
myself clear. How can this be done ? Thanks.



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
RANT - am I the only one that gets the impression that the programmers truly Marc New Users to Excel 7 April 24th 05 05:00 PM
This should be an easy one for most programmers but im having some trouble... Brent Excel Programming 1 August 12th 04 07:14 PM
snake relocate to programmers :) Mark[_17_] Excel Programming 2 June 14th 04 08:41 AM
EASY - Excel VBA Problem Andrew Slentz Excel Programming 6 May 8th 04 10:14 PM
easy problem Newbie wan kenobi Excel Programming 2 February 5th 04 05:57 PM


All times are GMT +1. The time now is 02:59 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"