Solved

Sum multiple columns based on multiple row criteria

Posted on 2016-09-08
16
53 Views
Last Modified: 2016-09-09
I have an unusually formatted data source and need to work out how to calculate a total of multiple rows and columns based on multiple criteria. A small sample is attached.

Basically the user needs to be able to choose a Location Id; A Day Qtr; and a Week Number (yellow cells at the top of my sample) and the total and average at the top needs to calculate the results (to make it clearer the total and average shown in this example would be based on the yellow cells in the sheet).

Ideally I need to be able to do it without adding extra columns because the data is extracted every week from another system in the format shown commencing at Row 6 so I would like the user to be able to simply paste the new report over the top.

Can anyone help me figure out how to calculate the total given it needs to sum multiple rows and columns?
Demo.xlsx
0
Comment
Question by:Rob4077
  • 6
  • 5
  • 4
  • +1
16 Comments
 
LVL 25

Expert Comment

by:ProfessorJimJam
Comment Utility
ok based on the condition, where is that 5 coming from?  if the criteria matches then what amount needs to be added.

you are not clear about from where amount needs to be calculated from
0
 
LVL 28

Accepted Solution

by:
Subodh Tiwari (Neeraj) earned 500 total points
Comment Utility
Try this....

In C5
=SUMPRODUCT(($B$8:$B$19+0=$C$1)*($D$8:$D$19+0=$C$2)*($E$6:$T$6=$C$3)*$E$8:$T$19)

Open in new window

0
 

Author Comment

by:Rob4077
Comment Utility
Sorry. In this case on:
3.1.2016, location Id 23456 had 5 units in DayQtr 3,
4.1.2016, location Id 23456 had 25 units in DayQtr 3,
5.1.2016, location Id 23456 had 22 units in DayQtr 3,
6.1.2016, location Id 23456 had 24 units in DayQtr 3,
7.1.2016, location Id 23456 had 33 units in DayQtr 3,
8.1.2016, location Id 23456 had 26 units in DayQtr 3,
9.1.2016, location Id 23456 had 14 units in DayQtr 3,

That entire week data related to week 2 so in this case, if the user chose week 2, LocationId 23456 and DayQtr 3 the Average is 7 and the Total is 149
0
 

Author Comment

by:Rob4077
Comment Utility
With regard to =SUMPRODUCT(($B$8:$B$19+0=$C$1)*($D$8:$D$19+0=$C$2)*($E$6:$T$6=$C$3)*$E$8:$T$19)
What is the significance of the +0 in each array?
0
 

Author Comment

by:Rob4077
Comment Utility
Also, is there a way of referring to an entire column $B:$B without including the row number? That would make it much easier to do the regular data updates, or am I locked in to including the row?
0
 
LVL 28

Expert Comment

by:Subodh Tiwari (Neeraj)
Comment Utility
Because your location ids in col. B and qtr# in col. D are numbers formatted as Text while your criteria are real numbers.
To convert these numbers formatted as Text in your data set, a 0 is added.
0
 
LVL 28

Expert Comment

by:Subodh Tiwari (Neeraj)
Comment Utility
Referencing the whole column is not advisable in the sumproduct formula.
0
 
LVL 31

Expert Comment

by:Rob Henson
Comment Utility
@Rob4077 - I assume your comment about including all of column B also applies to including further columns with updated data. Columns E to T are 1 to 16 Jan, I assume 17 Jan will go in col U, 18 Jan col V etc.

With a different layout of the data, this would be possible with a pivot table.
0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 

Author Comment

by:Rob4077
Comment Utility
Thanks Rob for your observation but unfortunately the data is inflexible and my requirement very specific so I can't use a pivot table.
Neeraj, your solution is exactly what I need. Thanks for the extra clarification
0
 
LVL 28

Expert Comment

by:Subodh Tiwari (Neeraj)
Comment Utility
You're welcome Rob!
0
 
LVL 31

Expert Comment

by:Rob Henson
Comment Utility
In which case before pasting in new data, insert a column before column T, thus pushing the reference to column T in the formula to column U.

Alternatively, you could use formula to convert the data from the existing format to a format that can be used in a Pivot.

Thanks
Rob
0
 

Author Comment

by:Rob4077
Comment Utility
Oops, forgot to follow up. How do I work out the average?
0
 
LVL 28

Expert Comment

by:Subodh Tiwari (Neeraj)
Comment Utility
Like this...

=SUMPRODUCT(($B$8:$B$19+0=$C$1)*($D$8:$D$19+0=$C$2)*($E$6:$T$6=$C$3)*$E$8:$T$19)/SUMPRODUCT(($B$8:$B$19+0=$C$1)*($D$8:$D$19+0=$C$2)*($E$6:$T$6=$C$3))

Open in new window

0
 
LVL 31

Expert Comment

by:Rob Henson
Comment Utility
Carrying on with the Pivot Table suggestion, with data formatted/converted by formula from the original format, see attached.

The only addition to the Original data is the concatenation in column A, making each row unique.

The table on Formatted then pulls from the Original data; to update copy and paste the last 12 rows (yellow) to the bottom of the table. I suspect this is not truly representative as there will no doubt be more than 3 location IDs. Columns A to D are basically a copy of the row headers from Original repeated for each daily batch of transactions. Columns E to G are formula driven.

Pivot sheet will update by Refresh, the Data Source will update automatically because the data on Formatted is set as a table.
Demo.xlsx
0
 

Author Comment

by:Rob4077
Comment Utility
Hi Rob, Thanks for the suggestion and demo. I see what you're getting at and it certainly will accomplish what I asked. Trouble is that my question was simplified to just the first step of where I need to get to and, unfortunately, the pivot table is unlikely to fit the total solution.
0
 
LVL 31

Expert Comment

by:Rob Henson
Comment Utility
No worries.

When doing bigger projects in Excel, I have often found it better to work backwards from what the desired end result is and then amend the source data where possible or include a step to adapt the data so that it fits.

However, more often than not there are already various parts in place that people want to keep and need working round.

Thanks
Rob H
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

A2 = A1 That kind of cell reference is relative.  If you copy it from A2 to B2, then B2 will get this: B2 = B1 That's all fine and good, but if you then insert a new row above row 2, you'll find: A3 = A1 B3 = B1 This is intentional. …
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…
Viewers will learn the basics of slicers and timelines for both PivotTables and standard Excel tables in Excel 2013.
Graphs within dashboards are meant to be dynamic, representing data from a period of time that will change each time the dashboard is updated with new data. Rather than update each graph to point to a different set within a static set of data, t…

728 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now