Link to home
Start Free TrialLog in
Avatar of Rob4077
Rob4077Flag for Australia

asked on

Sum multiple columns based on multiple row criteria

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
Avatar of Professor J
Professor J

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
ASKER CERTIFIED SOLUTION
Avatar of Subodh Tiwari (Neeraj)
Subodh Tiwari (Neeraj)
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Rob4077

ASKER

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
Avatar of Rob4077

ASKER

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?
Avatar of Rob4077

ASKER

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?
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.
Referencing the whole column is not advisable in the sumproduct formula.
@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.
Avatar of Rob4077

ASKER

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
You're welcome Rob!
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
Avatar of Rob4077

ASKER

Oops, forgot to follow up. How do I work out the average?
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

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
Avatar of Rob4077

ASKER

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