SOLVED

Sum of All Product?

Copper Contributor

Hi, 

How do I get the total of all apples in the below table in one simple formula? 

 

ProductQTYProductQTYProductQTY
Apple1Apple1Apple7
Apple2Apple1Apple2
Orange1Orange1Orange1
Olive1Olive1Olive1
Banana1Banana1Banana1
Olive1Olive1Olive5
Olive1Olive1Olive1
Apple1Apple1Apple1
Apple3Apple1Apple1
Apple1Apple1Apple1
10 Replies
best response confirmed by Qinnab (Copper Contributor)
Solution

@Qinnab You could use SUMIF as demonstrated in the attached file. It's not very elegant though and perhaps your real life situation isn't as simplistic as your example suggests.

 

Thanks @Riny_van_Eekelen , it is a kind of real-life situation, I have multiple columns ( Stores) that I need to get the total of products in. 

I know how to get it in long formula using sumproduct, but I still believe there is an easier way to do it, maybe Vlookup! I just can't figure it out. 

@Qinnab How many stores? I suspect more than a couple, thus the formula will indeed get very clumsy with SUMPRODUCT or SUMIF.

Do you have any influence over how the store data get assembled? Why in columns, side-by-side? If you can get it all in three columns (Store, Product, Qty), you could do it in the blink of an eye with a pivot table.

I have 9 stores with 9 quantities in columns beside it, I have no control over storing this data since this is an output of several formulas within many sheets too. I believe Sum and Vlookup should be used here somehow! for now, I will settle with Sumif until I figure an easier way. Thank You very much for your help.

@Qinnab You're welcome! But if you get the data into an Excel file, you could just copy and paste the store info in one long list and then create the pivot table. Or if that is still too much work, consider PowerQuery (PQ). You can easily divide the information for the 9 stores (two columns each) into separate named ranges or tables. Connect to them with PQ, append them and clean-up a bit. Set it up correctly once, and you can use it over-and-over again.

@Qinnab The attached file now contains an example of a PQ solution.

@Qinnab 

Array methods will perform calculation using your data as it stands, but is better with Excel 365.  The first approach works with legacy Excel

= SUMIFS(QtyTable, ProductTable, ProductList)

where the quantity table is simply the product table offset one cell to the right.

 

@Qinnab 

One more similar variant for the collection

References:

=SUM(
   MMULT( --( COLUMN($B$2:$G$2) = COLUMN($B$2) ),
   MMULT( TRANSPOSE( --($B$3:$G$12=$I2) ),
          IF( ISNUMBER($B$3:$G$12), $B$3:$G$12, 0 )
   ) )
 )

Named ranges:

=SUM(
    MMULT( --( COLUMN(Headers) = CELL("col", Headers ) ),
    MMULT( TRANSPOSE( --(Data=$I2) ),
           IF( ISNUMBER(Data), Data, 0 )
    ) )
 )

Table:

=SUM(
    MMULT( --( COLUMN(Shops[#Headers]) = CELL("col", Shops[#Headers] ) ),
    MMULT( TRANSPOSE( --(Shops=$I2) ),
           IF( ISNUMBER(Shops), Shops, 0 )
    ) )
 )
That's pretty devious. The conversion to a Table should make the worksheet far easier to use though.

@PeterBartholomew1 

That was only to illustrate differences in using range references, named ranges and tables when the size of the range is relatively dynamic. For that the person need to play with variants using this or that formulae suggested.

1 best response

Accepted Solutions
best response confirmed by Qinnab (Copper Contributor)
Solution

@Qinnab You could use SUMIF as demonstrated in the attached file. It's not very elegant though and perhaps your real life situation isn't as simplistic as your example suggests.

 

View solution in original post