x
• Status: Solved
• Priority: Medium
• Security: Public
• Views: 750

# 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
0
Rob4077
• 6
• 5
• 4
• +1
1 Solution

Commented:
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

Excel & VBA ExpertCommented:
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)
``````
0

Author Commented:
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 Commented:
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 Commented:
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

Excel & VBA ExpertCommented:
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

Excel & VBA ExpertCommented:
Referencing the whole column is not advisable in the sumproduct formula.
0

Finance AnalystCommented:
@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

Author Commented:
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

Excel & VBA ExpertCommented:
You're welcome Rob!
0

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

Excel & VBA ExpertCommented:
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))
``````
0

Finance AnalystCommented:
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 Commented:
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

Finance AnalystCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

## Featured Post

• 6
• 5
• 4
• +1
Tackle projects and never again get stuck behind a technical roadblock.