Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1109
  • Last Modified:

excel macro to find and sum multiple column values

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.


products1.xls
0
jmoriarty
Asked:
jmoriarty
  • 2
  • 2
  • 2
  • +1
3 Solutions
 
Patrick MatthewsCommented:
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.

Regards,

Patrick
0
 
yauhingCommented:
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)
products1.xls
0
 
kiranjjainCommented:
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

Regards,
Kiran Jain
products1.xls
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
Patrick MatthewsCommented:
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.

Regards,

Patrick
0
 
yauhingCommented:
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)
 
=SUMIF($A$2:$G$300,UPPER(J2),$B$2:$H$300)

Open in new window

0
 
jmoriartyAuthor Commented:
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.
0
 
jmoriartyAuthor Commented:
Nevermind, got it.

Thanks again!
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

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.

  • 2
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now