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
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!

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

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

This code takes an Excel list of URL’s and adds a header titled “URL List”. It then searches through all URL’s in column “A”, looking for duplicates. When a duplicate is found, it is moved to the top of the list. The duplicate URL’s are then highlig…
How to get Spreadsheet Compare 2016 working with the 64 bit version of Office 2016
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…
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.

733 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