[Webinar] Streamline your web hosting managementRegister Today

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

Calculating variance in a matrix

I have a chart that is displaying the Monthly Sales of the current fiscal year to the last fiscal year.  Now I am making a small table to the side with the actual \$ figures of the monthly sales with a column showing the variance of one month this year to the same month last year.  Is there an easy way to do this?  I tried using the Var function but it doesn't calculate correctly.  What I need is to take the amount in the second column (2014) for each month/row and minus the amount in the first column (2013) for the same month/row.  Would it be easier to just layout a table with fixed columns and rows and then name the cells and figure it out that way?  I'd like to make it as dynamic as possible so I was hoping I could add a total column and then modify the formula to get the calculation I need but I'm not sure how to get that.

Any help would be greatly appreciated!

0
HSI_guelph
• 3
• 2
1 Solution

Commented:
You can try this expression:
``````=Last(Fields!Amount.Value) - First(Fields!Amount.Value)
``````
But it depends on your data if this will work. The data needs to be summed by year and month already, and the data needs to be sorted by year (so first is 2013 and last is 2014). See the attached example.

If your data has another format it might still be possible to calculate the difference with a more complex formula. But to help you with that I need an example of your data.
MatrixVariance.rdl
0

Author Commented:
That did the trick!  I was sorting the data from May - April 2013, then May - April 2014.  Thank you very much!
0

Author Commented:

Though I think they'll want to see the total of the variance between the two years but I think I can do an if statement where if fiscal year is 2014, sum the sales minus a second if statement where if fiscal year is 2014, sum the sales.
0

Commented:
When you use this formula:
``````=Sum(iif(Fields!Year.Value = Max(Fields!Year.Value), Fields!Amount.Value, Fields!Amount.Value - Fields!Amount.Value)) - Sum(iif(Fields!Year.Value = Min(Fields!Year.Value), Fields!Amount.Value, Fields!Amount.Value - Fields!Amount.Value))
``````
It will work for both the detail and the total rows.
``````Max(Fields!Year.Value)
``````
returns 14, and
``````Fields!Amount.Value - Fields!Amount.Value
``````
returns 0 so the first part of the formula is like:
``````Sum(iif(Fields!Year.Value = 2014, Fields!Amount.Value,0))
``````
Which is the sum of all the 2014 values. The second part of the formula  (after the - ) is the same but with min (so 2013).

I think displaying 0.00 for rows that only have data for one of the year is not correct. I think those cells should be empty. But this is easily solved by using a custom format like:
``````#,##0.00;(#,##0.00); ;
``````
MatrixVariance.rdl
0

Author Commented:
Thank you very much!!  That's awesome!  The boss will be impressed :)
0

Featured Post

• 3
• 2
Tackle projects and never again get stuck behind a technical roadblock.