ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   SumProduct making things work slow (https://www.excelbanter.com/excel-worksheet-functions/129057-sumproduct-making-things-work-slow.html)

Adam Graham

SumProduct making things work slow
 
I was using DSUM to sum financial transactions based on a variety of
criteria, many of which involved dates. The problem for this is that I would
have to make a variety of tables of DSUM criteria (I apologize if I'm not
using the right terminology here) for each week, so to set the worksheet up
for an entire year would be tedious and time consuming, not to mention have a
plethera of potential for careless errors.

And so, I created a new worksheet to do the same thing using SUMPRODUCT, and
while this worksheet has the advantage of being updatable for a new week
simply by dragging an existing cell into the one below it, after entering a
new transaction, the cursor freezes for several seconds and at the bottom of
the screen it says 'calculating cells xx%' which takes time to raise to 100%.


So, in short, I have two solutions to the problem: Using DSUM makes the
worksheet hard to update, and using SUMPRODUCT makes the worksheet hard to
use. Is it simply a matter of changing a feature to allow new input while
cells are being calculated? Why is SUMPRODUCT so inefficient? Is there
another, equally mobile solution that is more efficient?

Any suggestions/similar experiences would be appreciated. Thank You.

Adam Graham

The solution to every problem with excel
 
Is to post your problem on here and continue searching for the answer on your
own. Once you post your question and help is on its way, you will inevitably
figure it out on your own within a matter of minutes.

I can just turn off automatic cell calculation under 'options' and hit F9 to
calculate my totals, which is what I'll probably do.

Nonetheless, a more efficient formula would improve my worksheet and
suggestions are still very much appreciated.


"Adam Graham" wrote:

I was using DSUM to sum financial transactions based on a variety of
criteria, many of which involved dates. The problem for this is that I would
have to make a variety of tables of DSUM criteria (I apologize if I'm not
using the right terminology here) for each week, so to set the worksheet up
for an entire year would be tedious and time consuming, not to mention have a
plethera of potential for careless errors.

And so, I created a new worksheet to do the same thing using SUMPRODUCT, and
while this worksheet has the advantage of being updatable for a new week
simply by dragging an existing cell into the one below it, after entering a
new transaction, the cursor freezes for several seconds and at the bottom of
the screen it says 'calculating cells xx%' which takes time to raise to 100%.


So, in short, I have two solutions to the problem: Using DSUM makes the
worksheet hard to update, and using SUMPRODUCT makes the worksheet hard to
use. Is it simply a matter of changing a feature to allow new input while
cells are being calculated? Why is SUMPRODUCT so inefficient? Is there
another, equally mobile solution that is more efficient?

Any suggestions/similar experiences would be appreciated. Thank You.


jasonc

The solution to every problem with excel
 
A few comments:
It would be helpful to know how many criteria fields you have. A better
choice may be =sumif or a pivot table. Sumproduct is not really a query tool
-- you can use it that way as an array function, but that's not really what
it's for. Also, you could use =sum as an array as well, but that get's tricky
too. The DSUM implementation in excel was poorly thought thru way back in
the early 90s, and so you're right that you wind up with a bunch of
repetitive criteria all over the place.
Jason



"Adam Graham" wrote:

Is to post your problem on here and continue searching for the answer on your
own. Once you post your question and help is on its way, you will inevitably
figure it out on your own within a matter of minutes.

I can just turn off automatic cell calculation under 'options' and hit F9 to
calculate my totals, which is what I'll probably do.

Nonetheless, a more efficient formula would improve my worksheet and
suggestions are still very much appreciated.


"Adam Graham" wrote:

I was using DSUM to sum financial transactions based on a variety of
criteria, many of which involved dates. The problem for this is that I would
have to make a variety of tables of DSUM criteria (I apologize if I'm not
using the right terminology here) for each week, so to set the worksheet up
for an entire year would be tedious and time consuming, not to mention have a
plethera of potential for careless errors.

And so, I created a new worksheet to do the same thing using SUMPRODUCT, and
while this worksheet has the advantage of being updatable for a new week
simply by dragging an existing cell into the one below it, after entering a
new transaction, the cursor freezes for several seconds and at the bottom of
the screen it says 'calculating cells xx%' which takes time to raise to 100%.


So, in short, I have two solutions to the problem: Using DSUM makes the
worksheet hard to update, and using SUMPRODUCT makes the worksheet hard to
use. Is it simply a matter of changing a feature to allow new input while
cells are being calculated? Why is SUMPRODUCT so inefficient? Is there
another, equally mobile solution that is more efficient?

Any suggestions/similar experiences would be appreciated. Thank You.


Epinn

SumProduct making things work slow
 
Some links on optimization:-

http://www.decisionmodels.com/optspeed.htm



http://www.ozgrid.com/News/GoodVsBad...edUpEvents.htm



An excerpt:



"Below is a list of what I believe to be the worst offenders for slowing down recalculations of spreadsheets.

1.. Array formulas

2.. UDFs (User-defined functions)

3.. Volatile functions

4.. Using range references in formulas that are beyond the required data scope."

Jason mentioned Pivot Table and I found the following excerpt.

"...... In particular, the use of Excel's pivot tables and sub-totals can often be used in place of potentially hundreds of formulas."

Epinn

"Adam Graham" wrote in message ...
I was using DSUM to sum financial transactions based on a variety of
criteria, many of which involved dates. The problem for this is that I would
have to make a variety of tables of DSUM criteria (I apologize if I'm not
using the right terminology here) for each week, so to set the worksheet up
for an entire year would be tedious and time consuming, not to mention have a
plethera of potential for careless errors.

And so, I created a new worksheet to do the same thing using SUMPRODUCT, and
while this worksheet has the advantage of being updatable for a new week
simply by dragging an existing cell into the one below it, after entering a
new transaction, the cursor freezes for several seconds and at the bottom of
the screen it says 'calculating cells xx%' which takes time to raise to 100%.


So, in short, I have two solutions to the problem: Using DSUM makes the
worksheet hard to update, and using SUMPRODUCT makes the worksheet hard to
use. Is it simply a matter of changing a feature to allow new input while
cells are being calculated? Why is SUMPRODUCT so inefficient? Is there
another, equally mobile solution that is more efficient?

Any suggestions/similar experiences would be appreciated. Thank You.


Adam Graham

The solution to every problem with excel
 
I'm not familiar with pivot tables, and in reading about ways to use SUMIF
with multiple criteria, I only found out about SUMPRODUCT. This is
essentially what I'm trying to do:

Columns A, B, and C make up a list of transactions, with the date in A, the
nature of the transaction in B, and the amount in C.
A B C
Date Transaction Amount
1/25/2007 Withdraw 100
1/30/2007 Deposit 100
etc.

I want, for example, the sum of all deposits between 2 dates. I could use

=DSUM(A1:C65000,"Amount",E1:G2)

Where E1:G2 is

E F G
Date Date Transaction
1/23/2007 <1/27/2007 ="=Deposit"


But in reality, I need, for each week, one of these for Withdraws, another
for Deposits, another for payments, three more for each of three categories
of charges, and probably some more, which would be a lot of work to set up,
and would need done every time you want to update the sheet for the next
duration of time.

I could also use

=SUMPRODUCT((A2:A11I1)*(A2:A11<J1)*(B2:B11="Depos it")*(C2:C11))

Where I1 equals some date and J1 equals some date, but this slows things
down when calculating cells.

Will pivot tables work? If so, I'll definately look into it. Thanks for
all the help, everyone!



"jasonc" wrote:

A few comments:
It would be helpful to know how many criteria fields you have. A better
choice may be =sumif or a pivot table. Sumproduct is not really a query tool
-- you can use it that way as an array function, but that's not really what
it's for. Also, you could use =sum as an array as well, but that get's tricky
too. The DSUM implementation in excel was poorly thought thru way back in
the early 90s, and so you're right that you wind up with a bunch of
repetitive criteria all over the place.
Jason



"Adam Graham" wrote:

Is to post your problem on here and continue searching for the answer on your
own. Once you post your question and help is on its way, you will inevitably
figure it out on your own within a matter of minutes.

I can just turn off automatic cell calculation under 'options' and hit F9 to
calculate my totals, which is what I'll probably do.

Nonetheless, a more efficient formula would improve my worksheet and
suggestions are still very much appreciated.


"Adam Graham" wrote:

I was using DSUM to sum financial transactions based on a variety of
criteria, many of which involved dates. The problem for this is that I would
have to make a variety of tables of DSUM criteria (I apologize if I'm not
using the right terminology here) for each week, so to set the worksheet up
for an entire year would be tedious and time consuming, not to mention have a
plethera of potential for careless errors.

And so, I created a new worksheet to do the same thing using SUMPRODUCT, and
while this worksheet has the advantage of being updatable for a new week
simply by dragging an existing cell into the one below it, after entering a
new transaction, the cursor freezes for several seconds and at the bottom of
the screen it says 'calculating cells xx%' which takes time to raise to 100%.


So, in short, I have two solutions to the problem: Using DSUM makes the
worksheet hard to update, and using SUMPRODUCT makes the worksheet hard to
use. Is it simply a matter of changing a feature to allow new input while
cells are being calculated? Why is SUMPRODUCT so inefficient? Is there
another, equally mobile solution that is more efficient?

Any suggestions/similar experiences would be appreciated. Thank You.


Epinn

The solution to every problem with excel
 
Based on what you described, I go for SUMPRODUCT which is versatile and dynamic. About the speed, one expert's previous advice was "take a coffee break while SUMPRODUCT crunches the numbers" - something like that.

Wonder what the gurus think.

Epinn (who learned about SUMPRODUCT before SUM and SUMIF)

"Adam Graham" wrote in message ...
I'm not familiar with pivot tables, and in reading about ways to use SUMIF
with multiple criteria, I only found out about SUMPRODUCT. This is
essentially what I'm trying to do:

Columns A, B, and C make up a list of transactions, with the date in A, the
nature of the transaction in B, and the amount in C.
A B C
Date Transaction Amount
1/25/2007 Withdraw 100
1/30/2007 Deposit 100
etc.

I want, for example, the sum of all deposits between 2 dates. I could use

=DSUM(A1:C65000,"Amount",E1:G2)

Where E1:G2 is

E F G
Date Date Transaction
1/23/2007 <1/27/2007 ="=Deposit"


But in reality, I need, for each week, one of these for Withdraws, another
for Deposits, another for payments, three more for each of three categories
of charges, and probably some more, which would be a lot of work to set up,
and would need done every time you want to update the sheet for the next
duration of time.

I could also use

=SUMPRODUCT((A2:A11I1)*(A2:A11<J1)*(B2:B11="Depos it")*(C2:C11))

Where I1 equals some date and J1 equals some date, but this slows things
down when calculating cells.

Will pivot tables work? If so, I'll definately look into it. Thanks for
all the help, everyone!



"jasonc" wrote:

A few comments:
It would be helpful to know how many criteria fields you have. A better
choice may be =sumif or a pivot table. Sumproduct is not really a query tool
-- you can use it that way as an array function, but that's not really what
it's for. Also, you could use =sum as an array as well, but that get's tricky
too. The DSUM implementation in excel was poorly thought thru way back in
the early 90s, and so you're right that you wind up with a bunch of
repetitive criteria all over the place.
Jason



"Adam Graham" wrote:

Is to post your problem on here and continue searching for the answer on your
own. Once you post your question and help is on its way, you will inevitably
figure it out on your own within a matter of minutes.

I can just turn off automatic cell calculation under 'options' and hit F9 to
calculate my totals, which is what I'll probably do.

Nonetheless, a more efficient formula would improve my worksheet and
suggestions are still very much appreciated.


"Adam Graham" wrote:

I was using DSUM to sum financial transactions based on a variety of
criteria, many of which involved dates. The problem for this is that I would
have to make a variety of tables of DSUM criteria (I apologize if I'm not
using the right terminology here) for each week, so to set the worksheet up
for an entire year would be tedious and time consuming, not to mention have a
plethera of potential for careless errors.

And so, I created a new worksheet to do the same thing using SUMPRODUCT, and
while this worksheet has the advantage of being updatable for a new week
simply by dragging an existing cell into the one below it, after entering a
new transaction, the cursor freezes for several seconds and at the bottom of
the screen it says 'calculating cells xx%' which takes time to raise to 100%.


So, in short, I have two solutions to the problem: Using DSUM makes the
worksheet hard to update, and using SUMPRODUCT makes the worksheet hard to
use. Is it simply a matter of changing a feature to allow new input while
cells are being calculated? Why is SUMPRODUCT so inefficient? Is there
another, equally mobile solution that is more efficient?

Any suggestions/similar experiences would be appreciated. Thank You.



Epinn

The solution to every problem with excel
 
I am very curious how much faster it will be using

(1) DataFilterAutoFilter and
(2) SUBTOTAL()

instead of SUMPRODUCT.

However, I may prefer Excel doing the work (SUMPRODUCT) to my setting up (AutoFilter) every time. You may still need to change the criteria in the SUMPRODUCT formulae every time?

I would appreciate any feedback on speed in terms of SUBTOTAL if you care to experiment.

Epinn

"Epinn" wrote in message ...
Based on what you described, I go for SUMPRODUCT which is versatile and dynamic. About the speed, one expert's previous advice was "take a coffee break while SUMPRODUCT crunches the numbers" - something like that.

Wonder what the gurus think.

Epinn (who learned about SUMPRODUCT before SUM and SUMIF)

"Adam Graham" wrote in message ...
I'm not familiar with pivot tables, and in reading about ways to use SUMIF
with multiple criteria, I only found out about SUMPRODUCT. This is
essentially what I'm trying to do:

Columns A, B, and C make up a list of transactions, with the date in A, the
nature of the transaction in B, and the amount in C.
A B C
Date Transaction Amount
1/25/2007 Withdraw 100
1/30/2007 Deposit 100
etc.

I want, for example, the sum of all deposits between 2 dates. I could use

=DSUM(A1:C65000,"Amount",E1:G2)

Where E1:G2 is

E F G
Date Date Transaction
1/23/2007 <1/27/2007 ="=Deposit"


But in reality, I need, for each week, one of these for Withdraws, another
for Deposits, another for payments, three more for each of three categories
of charges, and probably some more, which would be a lot of work to set up,
and would need done every time you want to update the sheet for the next
duration of time.

I could also use

=SUMPRODUCT((A2:A11I1)*(A2:A11<J1)*(B2:B11="Depos it")*(C2:C11))

Where I1 equals some date and J1 equals some date, but this slows things
down when calculating cells.

Will pivot tables work? If so, I'll definately look into it. Thanks for
all the help, everyone!



"jasonc" wrote:

A few comments:
It would be helpful to know how many criteria fields you have. A better
choice may be =sumif or a pivot table. Sumproduct is not really a query tool
-- you can use it that way as an array function, but that's not really what
it's for. Also, you could use =sum as an array as well, but that get's tricky
too. The DSUM implementation in excel was poorly thought thru way back in
the early 90s, and so you're right that you wind up with a bunch of
repetitive criteria all over the place.
Jason



"Adam Graham" wrote:

Is to post your problem on here and continue searching for the answer on your
own. Once you post your question and help is on its way, you will inevitably
figure it out on your own within a matter of minutes.

I can just turn off automatic cell calculation under 'options' and hit F9 to
calculate my totals, which is what I'll probably do.

Nonetheless, a more efficient formula would improve my worksheet and
suggestions are still very much appreciated.


"Adam Graham" wrote:

I was using DSUM to sum financial transactions based on a variety of
criteria, many of which involved dates. The problem for this is that I would
have to make a variety of tables of DSUM criteria (I apologize if I'm not
using the right terminology here) for each week, so to set the worksheet up
for an entire year would be tedious and time consuming, not to mention have a
plethera of potential for careless errors.

And so, I created a new worksheet to do the same thing using SUMPRODUCT, and
while this worksheet has the advantage of being updatable for a new week
simply by dragging an existing cell into the one below it, after entering a
new transaction, the cursor freezes for several seconds and at the bottom of
the screen it says 'calculating cells xx%' which takes time to raise to 100%.


So, in short, I have two solutions to the problem: Using DSUM makes the
worksheet hard to update, and using SUMPRODUCT makes the worksheet hard to
use. Is it simply a matter of changing a feature to allow new input while
cells are being calculated? Why is SUMPRODUCT so inefficient? Is there
another, equally mobile solution that is more efficient?

Any suggestions/similar experiences would be appreciated. Thank You.




Charles Williams

SumProduct making things work slow
 
see http://msdn2.microsoft.com/en-us/library/aa730921.aspx

and check out my website

Charles
______________________
Decision Models
FastExcel 2.3 now available
Name Manager 4.0 now available
www.DecisionModels.com

"Adam Graham" wrote in message
...
I was using DSUM to sum financial transactions based on a variety of
criteria, many of which involved dates. The problem for this is that I
would
have to make a variety of tables of DSUM criteria (I apologize if I'm not
using the right terminology here) for each week, so to set the worksheet
up
for an entire year would be tedious and time consuming, not to mention
have a
plethera of potential for careless errors.

And so, I created a new worksheet to do the same thing using SUMPRODUCT,
and
while this worksheet has the advantage of being updatable for a new week
simply by dragging an existing cell into the one below it, after entering
a
new transaction, the cursor freezes for several seconds and at the bottom
of
the screen it says 'calculating cells xx%' which takes time to raise to
100%.


So, in short, I have two solutions to the problem: Using DSUM makes the
worksheet hard to update, and using SUMPRODUCT makes the worksheet hard to
use. Is it simply a matter of changing a feature to allow new input while
cells are being calculated? Why is SUMPRODUCT so inefficient? Is there
another, equally mobile solution that is more efficient?

Any suggestions/similar experiences would be appreciated. Thank You.





All times are GMT +1. The time now is 12:03 AM.

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