Solved

Speed up =sumif(A:A,A:A,B:B) ?

Posted on 2013-06-03
5
1,079 Views
Last Modified: 2013-06-03
=sumif(A:A,A:A,B:B)

Very quickly gets very slow.

What ways are there to tell it not to add up one million rows (or whatever)?

Typically the business use involves a very few thousand rows, tops. Usually 1 or 2 thousand only.

Purpose is balances by (accounting) reference.

I plan to make it a named formula, so any array type solutions also welcome.

I am trying to avoid A1:A1000 as a solution.

Anthony
0
Comment
Question by:Anthony Mellor
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
5 Comments
 
LVL 34

Accepted Solution

by:
Norie earned 500 total points
ID: 39216423
Anthony

You could try using dynamic named ranges that will only include rows with values.

What data do you have in the 3 columns?

By the way, the criteria (3rd argument) is normally a single expression not a range.
0
 
LVL 24

Expert Comment

by:Steve
ID: 39216461
Get your data...
highlight a cell inside it...
then use Data > InsertTable

Then use FormulaNames to name the table.
Then in sumif start typing the table name... it will appear in the list... then open square brackets and a list of your columns will appear.
Construct formula this way =SUMIF(Table1[AA],"A*",Table1[BB])

See attached.

The table will grow / shrink as data in it changes, so the ranges will be the right size automaticaly.
Example.xlsx
0
 
LVL 50

Expert Comment

by:barry houdini
ID: 39216543
Normally SUMIF only uses the "used range" anyway so actually using the whole column for the ranges isn't normally any more "expensive" than using a named range.....but why are you using a whole column for the criteria range? If the formula should be copied down then use just

=sumif(A:A,A1,B:B)

in row 1 copied down

Also do you need a sum on each row even if A1 is repeated? You could invoke SUMIF just on the first row for each repeated value, i.e. like

=IF(COUNTIF(A$1:A1,A1)=1,SUMIF(A:A,A1,B:B),"")

regards, barry
0
 
LVL 9

Author Comment

by:Anthony Mellor
ID: 39216875
What data do you have in the 3 columns?

invoice numbers
reference number being cross reference to the payment
amount of invoice(s)
amount of payment

amount of payment contains a sumif to derive the payment from the invoices with the same reference as this payment

amount of balance remaining unpaid per invoice

ok, that's more than 3 columns.
if all Greek I will write and upload an example.

Anthony (I have seen the replies above and now savouring them, thank you).

edit: if an example is needed I will make it another question.

edit I am wondering if the answer is as simple as the twice mentioned criteria needs only be one cell not a column.
0
 
LVL 9

Author Closing Comment

by:Anthony Mellor
ID: 39216962
Points for (if as a mere aside) directly and being the first to solve the problem. The Range as criteria was slowing everything down.

followup re tables Q_28146299.html

follow up re item counts: Q_28146326.html
0

Featured Post

MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article descibes how to create a connection between Excel and SAP and how to move data from Excel to SAP or the other way around.
You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a …
This Micro Tutorial will demonstrate how to use a scrolling table in Microsoft Excel using the INDEX function.

737 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question