excel macro to find and sum multiple column values

Posted on 2009-07-01
Last Modified: 2012-05-07
Hey folks,

I have an excel sheet with 4 columns. I'm trying to aggregate the data in the SKU columns, with the data in the quantity columns, for each sku.

Basically, I'm trying to find multiple instances of each sku, add their respective quantities, to give me an aggregate total grouped by sku.  See attached example for more info.

What I'm doing now is going through and assigning each sku a color, then manually adding each quantity to a aggregated sum shown on the right, but is there a faster way to do this via vb script or similar?

In lieu of that, I was thinking of using a PHP script to upload all data to a mysql data, group and sum accordingly, then export back out the manipulated set, but a vba solution would be much faster I'm thinking.

Any input greatly appreciated.

Question by:jmoriarty
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
  • 2
  • 2
  • 2
  • +1
LVL 92

Accepted Solution

Patrick Matthews earned 400 total points
ID: 24760525
Hello jmoriarty,

No need for code.  I was able to build a PivotTable quite easily.  The following work steps are for Excel 2003:

1) Select Data|PivotTable & PivotChart Report from the menu

2) In Step 1 of the wizard, select multiple consolidation ranges as the source

3) In Step 2a, select 'create single page field'

4) In Step 2b, I selected A1:B74 and clicked add, and continued for the other blocks of SKU data

5) In Step 3, I clicked finish

That gave me a PivotTable that aggregated the quantities by SKU.



Assisted Solution

yauhing earned 50 total points
ID: 24761142
You can use excel formula to do it, please find attached.
(some result are not same as yours because the typo in your sheet)

For example: input below formula in the Cell "L2" can get the same result.

=SUMPRODUCT(($A$2:$A$300 = J2) * $B$2:$B$300) + SUMPRODUCT(($C$2:$C$300 = J2) * $D$2:$D$300) + SUMPRODUCT(($E$2:$E$300 = J2) * $F$2:$F$300) + SUMPRODUCT(($G$2:$G$300 = J2) * $H$2:$H$300)

Assisted Solution

kiranjjain earned 50 total points
ID: 24762283
use sum(if()) array function as shown in thefile attached. anyways i have done all the calculations for u if that was the only thing required. no need for VB Script

Kiran Jain
Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

LVL 92

Expert Comment

by:Patrick Matthews
ID: 24762763
yauhing and kiranjjain,

Any particular reason why you are recommendation SUMPRODUCT or array formulae when a simple
SUMIF would do quite nicely?


Anyway, I do recommend the PivotTable approach because it dynamically finds the different SKUs,
whereas a formula-based approach presupposes that you already have a list of the SKUs you want
to analyze.



Expert Comment

ID: 24769343
Thanks matthewspatrick,

Yes, I should use SUMIF instead, I always use SUMPRODUCT because it allow me to input multi criteria so I forget the simple SUMIF can do the same thing.

I totally agree PivotTable approach dynamically finds the different SKUs is good.

But using formula allow the anwser store in a cell, which is useful when we need print it in specific format, or use this result as a part of other formula.
// Example formula in F2: (assume the last row number of the data is 300)

Open in new window


Author Comment

ID: 24817748
Hey folks,

Sorry for the long delay in reply; just getting around to working on this again. the pivot table is exactly what I was looking for since I'm not always sure of the range of values I'm working with.  One further question though: how do you sort the results (re: the count of values) once you have the pivot table set?

Thanks again.

Author Comment

ID: 24822001
Nevermind, got it.

Thanks again!

Featured Post

Independent Software Vendors: 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

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
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 will demonstrate the scrolling table in Microsoft Excel using the INDEX function.
This Micro Tutorial will demonstrate how to create pivot charts out of a data set. I also added a drop-down menu which allows to choose from different categories in the data set and the chart will automatically update.

695 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