Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

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

Posted on 2013-06-03
5
Medium Priority
?
1,238 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 35

Accepted Solution

by:
Norie earned 2000 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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

This article will guide you to convert a grid from a picture into Excel format using Microsoft OneNote and no other 3rd party application.
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.
This Micro Tutorial demonstrate the bugs in Microsoft Excel for Mac with Pivot Charts.
This Micro Tutorial will demonstrate the scrolling table in Microsoft Excel using the INDEX function.

609 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