#### Finding Cells that Total a Value

```Hello Friends,

I need some assistance in solving a problem.  I have a spreadsheet with
over five hundred lines of transactions. The sum of these transactions
are creating a balance on the account. Is there any formula/macro that
will help me find the transactions creating the balance? The sum of the
account should be zero.  To clarify, if we owe client money, there
would be a transaction setting up that postive balance then a payment
on the account taking it back to zero. There could be multiple
transactions and then one net payment. Or we could be due to receive.
So at the end of the day, the account should be zero. I need to locate
the transactions that are creating the balance (each line is a
transaction).   I need a function to cycle through the cells to try and
identify possible entries that could cause the specific deviation. It
could be a single entry that equals the deviation, or it could be 5
separate cells that when summed up equal the deviation. I would need to
setup the depth of the search, and then construct a table of all of the
possible solutions.   Anyone know how I can do this?

```
 0
JLKaye (1)
8/17/2006 3:48:18 AM
excel 39879 articles. 2 followers.

1 Replies
782 Views

Similar Articles

[PageSpeed] 39

```      Find numbers that add up to a specified sum.
Niek Otten
5-Apr-06

This type of application tends to be very resource-consuming. It is wise to test a solution first with a limited
set of data
One option is using Solver; I include an example given by MVP Peo Sjoblom. The other is a rather famous VBA Sub by Harlan
Grove. There seems to be one flaw: if the table is sorted ascending and the first n numbers sum up to the required value exactly,
it will miss that combination. I don't know if this has been corrected later.
Note the requirements for your settings documented in the code itself

Peo's solution:
==================================================
One way but you need the solver add-in installed (it comes with
put the data set in let's say A2:A8, in B2:B8 put a set of ones {1,1,1 etc}
in C2 put 8, in D2 put
#VALUE!
select D2 and do tools>solver, set target cell \$D\$2 (should come up
automatically if selected)
Equal to a Value of 8, by changing cells \$B\$2:\$B\$7, click add under  Subject
to the constraints of:
in Cell reference put
\$B\$2:\$B\$7
from dropdown select Bin, click OK and click Solve, Keep solver solution
and look at the table
2         1
4         0
5         0
6         1
9         0
13       0
there you can see that 4 ones have been replaced by zeros and the adjacent
cells to the 2 ones
total 8
--
Regards,
Peo Sjoblom
==================================================
Harlan's solution:

'Begin VBA Code

' By Harlan Grove

Sub findsums()
'This *REQUIRES* VBAProject references to
'Microsoft Scripting Runtime
'Microsoft VBScript Regular Expressions 1.0 or higher

Const TOL As Double = 0.000001  'modify as needed
Dim c As Variant

Dim j As Long, k As Long, n As Long, p As Boolean
Dim s As String, t As Double, u As Double
Dim v As Variant, x As Variant, y As Variant
Dim dc1 As New Dictionary, dc2 As New Dictionary
Dim dcn As Dictionary, dco As Dictionary
Dim re As New RegExp

re.Global = True
re.IgnoreCase = True

On Error Resume Next

Set x = Application.InputBox( _
Prompt:="Enter range of values:", _
Title:="findsums", _
Default:="", _
Type:=8 _
)

If x Is Nothing Then
Err.Clear
Exit Sub
End If

y = Application.InputBox( _
Prompt:="Enter target value:", _
Title:="findsums", _
Default:="", _
Type:=1 _
)

If VarType(y) = vbBoolean Then
Exit Sub
Else
t = y
End If

On Error GoTo 0

Set dco = dc1
Set dcn = dc2

Call recsoln

For Each y In x.Value2
If VarType(y) = vbDouble Then
If Abs(t - y) < TOL Then
recsoln "+" & Format(y)

ElseIf dco.Exists(y) Then
dco(y) = dco(y) + 1

ElseIf y < t - TOL Then

c = CDec(c + 1)
Application.StatusBar = "[1] " & Format(c)

End If

End If
Next y

n = dco.Count

ReDim v(1 To n, 1 To 3)

For k = 1 To n
v(k, 1) = dco.Keys(k - 1)
v(k, 2) = dco.Items(k - 1)
Next k

qsortd v, 1, n

For k = n To 1 Step -1
v(k, 3) = v(k, 1) * v(k, 2) + v(IIf(k = n, n, k + 1), 3)
If v(k, 3) > t Then dcn.Add Key:="+" & _
Format(v(k, 1)), Item:=v(k, 1)
Next k

On Error GoTo CleanUp
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

For k = 2 To n
dco.RemoveAll
swapo dco, dcn

For Each y In dco.Keys
p = False

For j = 1 To n
If v(j, 3) < t - dco(y) - TOL Then Exit For
x = v(j, 1)
s = "+" & Format(x)
If Right(y, Len(s)) = s Then p = True
If p Then
re.Pattern = "\" & s & "(?=(\+|\$))"
If re.Execute(y).Count < v(j, 2) Then
u = dco(y) + x
If Abs(t - u) < TOL Then
recsoln y & s
ElseIf u < t - TOL Then
c = CDec(c + 1)
Application.StatusBar = "[" & Format(k) & "] " & _
Format(c)
End If
End If
End If
Next j
Next y

If dcn.Count = 0 Then Exit For
Next k

If (recsoln() = 0) Then _
MsgBox Prompt:="all combinations exhausted", _
Title:="No Solution"

CleanUp:
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.StatusBar = False

End Sub

Private Function recsoln(Optional s As String)
Const OUTPUTWSN As String = "findsums solutions"  'modify to taste

Static r As Range
Dim ws As Worksheet

If s = "" And r Is Nothing Then
On Error Resume Next
Set ws = ActiveWorkbook.Worksheets(OUTPUTWSN)
If ws Is Nothing Then
Err.Clear
Application.ScreenUpdating = False
Set ws = ActiveSheet
r.Parent.Name = OUTPUTWSN
ws.Activate
Application.ScreenUpdating = False
Else
ws.Cells.Clear
Set r = ws.Range("A1")
End If
recsoln = 0
ElseIf s = "" Then
recsoln = r.Row - 1
Set r = Nothing
Else
r.Value = s
Set r = r.Offset(1, 0)
recsoln = r.Row - 1
End If
End Function

Private Sub qsortd(v As Variant, lft As Long, rgt As Long)
'translated from Aho, Weinberger & Kernighan,
'"The Awk Programming Language", page 161

Dim j As Long, pvt As Long

If (lft >= rgt) Then Exit Sub
swap2 v, lft, lft + Int((rgt - lft + 1) * Rnd)
pvt = lft
For j = lft + 1 To rgt
If v(j, 1) > v(lft, 1) Then
pvt = pvt + 1
swap2 v, pvt, j
End If
Next j

swap2 v, lft, pvt

qsortd v, lft, pvt - 1
qsortd v, pvt + 1, rgt
End Sub

Private Sub swap2(v As Variant, i As Long, j As Long)
'modified version of the swap procedure from
'translated from Aho, Weinberger & Kernighan,
'"The Awk Programming Language", page 161

Dim t As Variant, k As Long

For k = LBound(v, 2) To UBound(v, 2)
t = v(i, k)
v(i, k) = v(j, k)
v(j, k) = t
Next k
End Sub

Private Sub swapo(a As Object, b As Object)
Dim t As Object

Set t = a
Set a = b
Set b = t
End Sub
'---- end VBA code ----
==================================================
================================================
Pasting a User Defined Function (UDF)
Niek Otten, March 31, 2006

If you find a VBA function on the Internet or somebody mails you one, and you don't know how to implement it, follow
these steps:

Select all the text of the function.
CTRL+C (that is, press and hold down the CTRL key, press C, release both). This a shortcut for Copy.
Go to Excel. Press ALT+F11 (same method: press and hold the ALT key, press the F11 key and release both). You are now
in the Visual Basic Editor (VBE).
From the menu bar, choose Insert>Module. There should now be a blank module sheet in front of you. Click in it and
then press CTRL+V (same method.). This a shortcut for Paste. You should now see the text of the function in the Module.
You should now be able to use the function as if it were a built-in function of Excel, like =SUM(..)
================================================

--
Kind regards,

Niek Otten
Microsoft MVP - Excel

| Hello Friends,
|
| I need some assistance in solving a problem.  I have a spreadsheet with
| over five hundred lines of transactions. The sum of these transactions
| are creating a balance on the account. Is there any formula/macro that
| will help me find the transactions creating the balance? The sum of the
| account should be zero.  To clarify, if we owe client money, there
| would be a transaction setting up that postive balance then a payment
| on the account taking it back to zero. There could be multiple
| transactions and then one net payment. Or we could be due to receive.
| So at the end of the day, the account should be zero. I need to locate
| the transactions that are creating the balance (each line is a
| transaction).   I need a function to cycle through the cells to try and
| identify possible entries that could cause the specific deviation. It
| could be a single entry that equals the deviation, or it could be 5
| separate cells that when summed up equal the deviation. I would need to
| setup the depth of the search, and then construct a table of all of the
| possible solutions.   Anyone know how I can do this?
|

```
 0
nicolaus (2022)
8/17/2006 6:55:58 AM

Similar Artilces:

Inbox unread total does not change
I have a problem with one Outlook installation in my office. The number on the right of the Inbox, which should reflect the number of unread messages, is the total of all the messages in the Inbox - both unread and read. How do I fix this? >-----Original Message----- >I have a problem with one Outlook installation in my >office. The number on the right of the Inbox, which should >reflect the number of unread messages, is the total of all >the messages in the Inbox - both unread and read. > >How do I fix this? >. >What version of Outlook are you running? ...

I need to compare 3 numbers and find the one in the middle
I have three numbers in a single row and would like to identify the middle number enter that number in another cell. Example: 1st # 2nd # 3rd # result 628 678 720 678 655 625 700 655 748 720 725 725 is there a function in excel that can do this? Thanks, Eddie Try =LARGE(A1:C1,2) VBA Noo -- VBA Noo ----------------------------------------------------------------------- VBA Noob's Profile: http://www.excelforum.com/member.php?action=getinfo&userid=3383 View this thread: http://www.excelforum.com/showthread.php?threadid=56811 fasteddie wrote.....

Find Duplicate names and delate
Dear experts, I have a small doubt could you clarify that??? That is I find duplicate name but I want to delete one name only, if I filter DUPLICATEâ€¦.. both names are showingâ€¦ 1. Select the range of data including the header. You need to have headers for these columns 2. From menu Data>Filter>Advanced Filter>Copy to another location 3. In 'copy to' specify the target cell and check 'Unique records only' 4. Click OK will give you the unique list -- Jacob "Find Duplicate names and delate" wrote: > Dear experts, > I have a small ...

Finding a Median
I'm trying to write a query that will return a median for various values taken from a previous query. I've seen some suggestions in my searching, but I haven't been able to get them working. They are also all from before 2003 and refer to Access 97 and 2000. Has any functionality been added to 2003 for this? Or is there a non- code-based way to do it? I've seen it suggested to write a code to open the query, sort it, find the total number of records, divide it in half, then seek out the middle record using that value. I'm still very green when it comes to code, though...

Find a Value the first Time It Occurs
I have a row of values that shows the total cumulative number of sales of items by month. Occasionally, there may be no sales in a month for an item so the cumulative value would stay the same for more than one month. I want to select a number in the row the first time it occurs and not select it if it repeats. What are you wanting to do with the info? To return position (column number) of number 1234 within row 2: =MATCH(1234,2:2,0) A formula that signals it's the first occurence: =COUNTIF(\$A2:A2,A2)=1 This could be used in a helper row, or as a conditional format f...

vlookup on cell below
Is it possible to do a VLOOKUP but instead of returning the value in row that contains the lookup, it returns the value in the row below? eg a b 1 no x 2 yes y 3 ok z =VLOOKUP("yes",A1:B3,2,FALSE) would return "z" instead of "y". Th only way I can think of is to add a row header at the top and use the MATCH function in column A to find the row position of "yes", then use that in an HLOOKUP in column B. I was hoping there was a simpler way. Not VLOOKUP, but INDEX & MATCH =INDEX(B1:B3,MATCH("yes",A1:A3,0)) -...

Find/Replace in RichEdit 2.0
I'm using Windows ME and I've switched from RichEdit 1.0 to 2.0 for my CRichEditDoc/View application so that I can use the ITextDocument interface and can do things such as suspend/resume the Redo buffer. Problem is, now the Find/Replace dialogs don't seem to do anything. If I revert back to RichEdit 1.0 they do! What's going on? BUMP! adriangibbons@yahoo.co.uk (Adrian Gibbons) wrote in message news:<34a2acd5.0404130713.123dbaab@posting.google.com>... > I'm using Windows ME and I've switched from RichEdit 1.0 to 2.0 for my > CRichEditDoc/View application...

delete drop-down box in cell
I have a problem removing a drop-down list box in a cell and have trie using clear contents, delete cell, the delete button on the keyboard Can someone please tell me how to remove this box from the cell. Thank -- Message posted from http://www.ExcelForum.com Hi might be one created by data / validation ... click on the cell choose data / validation choose Clear All regards JulieD "brain77 >" <<brain77.1apguz@excelforum-nospam.com> wrote in message news:brain77.1apguz@excelforum-nospam.com... > I have a problem removing a drop-down list box in a cell and have tr...

VBA to insert .xlborder if cell value not equal to previous cell
I've got a worksheet and I'm wondering whether it is possible to insert a line when a value in Column A, B, C & D does not equal the values in the row above or below it. I've currently got a formula in Column A that reads.... =IF(AND(B3=B2,C3=C2,D3=D2,E3=E2),"","IL") and a conditional format that if the cell value is equal to "IL" then put a border. Wondering if there is a better way to do this via VBA or is that the better way? In your conditional formatting formula, instead of =A1="IL" (which I assume is what you've...

Find (but not find)
My program takes a name from sheet3 goes to sheet1 to Find the name. If it cannot find name, how do you do an If/End to Exit Do while or find out if name has been founf? I have "On Error Resume Next" in program. Thanks again for all your help Gordon As ALWAYS, post your code for comments & suggestions. -- Don Guillett Microsoft MVP Excel SalesAid Software dguillett1@austin.rr.com "Gordon" <gwelch1938@yahoo.com> wrote in message news:1184612089.486737.144020@n60g2000hse.googlegroups.com... > My program takes a name from sheet3 goes to sheet1 to Find the na...

Return "cell reference"
Hi. How to do the following: 1) Return the cell reference of the cell eg: Type this formula in cell A1: =return_cell_reference_of_that_cell() {The above is a fictitious formula only} The answer will be A1. Preferably, it is great for me to decide on how the reference is displayed, eg: - absolute (ie \$A\$1) or - column-absolute (ie \$A1) or - row-absolute (ie A\$1) - relative (ie A1) 2) Return cell reference(s) of the target eg: Type this formula in cell B1: =return_cell_reference(target_cell) {The above is a fictitious formula only} eg: =return_cell_reference(A3) Answer: A3 =return_cell_refe...

is there a comand to return the mane of a worksheet inside a cell
Trying to find a command that returns a worksheet name inside a cell Hi Fabian Try this, =MID(CELL("filename"),FIND("[",CELL("filename"))+1,FIND("]",CELL("filename"))-FIND("[",CELL("filename"))-1) This one will give you the full path: =CELL("filename") HTH John "Fabian" <Fabian@discussions.microsoft.com> wrote in message news:140C847D-2C3A-49F6-9C60-9515B426AD5E@microsoft.com... > Trying to find a command that returns a worksheet name inside a cell Hi, =MID(CELL("filename...

Finding an event
Hello, I am developing an app that uses a single worksheet to enter data. When user double clicks a button, a new window (in same workbook) opens with a new sheet. My problem is that excel does not seem to have any events for close of window if there are multiple windows in a workbook. Can someone help Peter Peter, That triggers the Workbook_WindowActivate event, you can use that. HTH Bob "Peter Ostermann" wrote in message news:i9m5v8\$7bv\$02\$1@news.t-online.com... Hello, I am developing an app that uses a single worksheet to enter data. When user double clicks a button...

Microsoft Money 2004
I just upgraded from Money 2002 to Money 2004. Can somebody please explain why I just paid AUD\$80 for THE SAME SOFTWARE? Very, very disapointed. What information did you rely on to set your value expectation level that M04 was way different, indeed AUD\$80 better, than M02? That might help explain it better than we can. "Paul Ward" <pbward@hotmail.com> wrote in message news:04b401c35bb8\$b9fea7d0\$a501280a@phx.gbl... > I just upgraded from Money 2002 to Money 2004. Can > somebody please explain why I just paid AUD\$80 for THE > SAME SOFTWARE? > > Very, very disa...

Find value in a column and insert rows above
The set up looks like this: ColU ColV ColW ColX Y N N N Y N N N N Y N N N N Y N N N Y N N N Y N N N Y N N N Y Y Columns will always be U through X and will always be sorted in this order. I need to find the first Y in each column and insert 2 rows above that row. On the blank row above the first Y, I need to highlight in yellow and put title in the first cell, such as New, Old, Existing, Deleted. Any help would be greatly appreciated. Thanks for your time, Dee If desired, send your file to my address below. I will only look if: 1. You send a copy of this ...

Hiding Cells
How do you hide cells without having to hide the entire column or rows? Hi McNiwram! You can hide the contents by formatting the font the same color as the background. You can hide formulas in the formula bar by using: Format > Cells > Protection Place check against "Hidden" OK Note that this doesn't come into effect until the worksheet is protected using the Tools menu. -- -- Regards Norman Harker MVP (Excel) Sydney, Australia njharker@optusnet.com.au Excel and Word Function Lists (Classifications, Syntax and Arguments) available free to good homes. "McNiwram&...

cannot find database
I have an excel spreadsheet that is supposed to update a access db. Whenever I try to save the .xls I get an error stating cannot find db. Even when I open the db with access, I get the error and the db opens anyway?????? This only happens on 2 out of 20 pc's and I cannot figure out why???????? Thanks ...

Simple division is not returning actual value
Hi, I know I'm making a mistake somewhere, just not sure where. I'm dividing 67/14 and want to get the result as 4.78 -- I'd be OK with 4.79 which is the result I'd get if the last digit was rounded up. When I do SELECT CAST((67/14) AS DECIMAL(3,2)) I'm getting 4.00. What am I doing wrong? -- Thanks, Sam This is because of integer division. Try this: SELECT 67/CAST(14 AS DECIMAL(5,2)) AS a, 67/14.0 AS b, 1.0 * 67/14 AS c, CAST(1.0 * 67/14 AS DECIMAL(3, 2)) AS d, ROUND(1.0 * 67/14, 2, 1) AS e; /* a b...

Sum if Condition is Equal in Range Date and find column
I want to make a sum if Range is a week number and if style is Equal to CONC-92 or CONC-45 Week# 49 Week# 50 CONC-92= 27 CONC-92= 30 CONC-45= 27 CONC-45= 30 Datas are in a pivot table and... Pivot table looks like this: Date CONC-92 CONC-45 CONC-92 CONC-45 12/7 5 5 10 10 12/8 2 2 10 10 12/9 5 5 10 10 12/10 5 5 10 10 please help -- Lorenzo Díaz Cad Technician ...

Losing cell borders when I copy and paste
When I copy and paste into a blank cell my borders from the cell dissapear. What am I doing wrong? Are you copying a bordered cell onto an un-bordered cell? Format from source will go with the source. If copying an unbordered cell onto a blank bordered cell, source format will wipe the target cell format. Gord Dibben MS Excel MVP On Sat, 19 Apr 2008 15:47:00 -0700, Davo <Davo@discussions.microsoft.com> wrote: >When I copy and paste into a blank cell my borders from the cell dissapear. >What am I doing wrong? Try paste special -> Values. -- HTH, Barb Reinhardt &qu...

Requesting Help Ranking Sales Values.....
I have a field in a table named "Ext B/O" that lists the extended Backorder Value for parts sold. There may be duplicate values and they should show the same rankings. I would like to rank these totals from highest to lowest dollar value. I have tried the following query coding but I only get a count of the total number of records in the query for each record (49435) and NOT the individual ranking of the value. Rank: (Select Count(*) from [tbl_WorkingData] Where [Ext B/O] >= 0)+1 Can ANYONE please tell me what I am doing wrong and how to correct it? Th...

Can I place visible text in cell that won't print
Is it possible for me to place text in some cells where I can see the text but that will not print when my sheet is printed. I am aware of the comment feature that becomes visible when the mouse hovers over the small red symbol. I would like to be able to see what is in the cell without having to hover the mouse over each cell to see a comment. Is this possible? Thank you for any direction here. Jerry There are a few possible solutions. One is to use the comment as you noted, but you can have them always display even without the mouse hovering over it by using Tools/Options/View and se...

Trapping a NO FIND after a find
I use the code below to store a row number to a variable after a find. I would like to trap a NO FIND if the find is unsuccessfull Any ideas. FSt1 provided the code below Sub macfindrow() dim rn as string dim rng as range dim therow as long rn = inputbox("enter something to find") if rn <> "" then Set rng = nothing Set rng = range("A1:IV65536").Find(what:=rn, _ After:=Range("A1"), _ Lookin:=xlformulas, _ Lookat:=xlpart, _ ...

ignoring text data in a cell when summing values in the same cell
I have entered text in cells along with a numerical value as a note pertainig to the values example, "2 - exist". Is there a way to tell Excell to ignore the text data in order to sum the values..do you place the text in brackets or parathesis or something similar? -- FM Much, much easier never to mix text & numbers in the same cell in the 1st place. One avenue here, try use Data>Text to Columns to split the numbers separate from the text, then you can sum (or whatever) the numbers col directly. Or, assuming your data is representative (ie numbers are to the...

How do I find the out of office reply?
My out of office reply is missing from tools. How can I retrieve it? Out of Office reply <Out of Office reply@discussions.microsoft.com> wrote: > My out of office reply is missing from tools. How can I retrieve it? Unless you are using an Exchange server, you will not have the Out of Office Assistant. See this: http://www.slipstick.com/rules/autoreply.htm -- Brian Tillman ...