I'm trying to create this Waterfall graph using SSRS Report Builder but still haven't figured it out:
Let's say I have this data :
In the start of 2013, I have a total of 125
Now in 2013, each quarter has their own amount that eventually will sum up for the total amount in start of 2014 (which is 275).
ID || Desc || Amount
1 || Q1 || 80
2 || Q2 || -60
3 || Q3 || -40
4 || Q4 || 175
Notice that the first and last bar are for the start of 2013 and the start of following year (2014). And also if the amount is negative, the bar will go down vice versa.
Can it be done with SSRS Report Builder?
I dont think this can be achieved in Report Builder alone. I would try to create two series (one for the years, one for the quarters) and assign one series to the secondary axis.
The problem with just Report Builder is you need to set the Vertical Axis Min and Max for the Quarters series so that it appears as if the 0 value for Quarters = the 2013 value. In your example the Min Value for the Quarters Vertical Axis should be -125, and the Max should be 150.
You might be able to come up with an SSRS Expression to derive those Min and Max values, but I doubt it. I would try to pre-calculate those Min and Max values e.g. in SQL with a CTE.
Related
Populate a cell in SSRS report by testing value conditions from other column values
I have 3 columns (category, Month, Amount) in my dataset, with values similar to these below:
Category Month Amount
A Jan 20
A Feb 25
A Mar 10
R Jan 15
R Feb 50
R Mar 55
On the report I need:
Jan Feb Mar
A 20 25 10
R 15 50 55
I have tried placing this expression in each group row column, for example, in the "Feb" column it would be:
=IIF(Fields!Category.Value = "A" and Fields!Month.Value = "Feb", Fields!Amount.Value, 13)
Using IIF, which does not short-circuit, is not evaluating the conditions properly. The "Month" value being a string, it displays always the first row found for the conditions, in this case it would display value 20, instead of 25. If I change the "Month" value to int, it displays the false(13);
How can I populate my cell correctly, using IIF or something other way?
Any help on this is deeply appreciated.
You don't need to do anything like that.
Just use a matrix instead of a table.
Add the matrix to the report, you'll see three placeholder names, (from memory) something like Rows, Column and Data. Drag your Category field to the rows cell, your month field to the columns cell and your Amount field to the data cell. That's it....
The only problem you will have is the columns would be ordered alphabetically by default. It would be better to have the Month number in your dataset too so you can order by that. You set the column order by right-clicking the column group name in the row/column group panel which is under your main report design area.
I am developing SSRS range chart report in 2012 by following http://pnarayanaswamy.blogspot.in/2012/12/ssrs-2008-r2-range-bar-chart-gantt.html link, Now I have a problem with month headers and grouping range chart.
I am giving Label Intervaltype = months and Label Interval = 3 and LabelFormat = "MMM". It is showing month name for each 3 months. I want to convert it to corresponding months quarter format.Like it has to show Q1 Q2 Q3 for each year.
My left side range chart repeating the group names for each row of projects. I want to truncate the group by only one name for each group. When I tried with group category by Project_Group, the adjustment between group chart and details chart are not matching. For example, "Control Level group needs to be displayed only once instead of 3 times, meanwhile all 3 projects remains same in details chart, and the spaces needs to be remain same till next level"
Below is my table structure,
Project ----------- Project_Group
MAC ----------- Backbone
FT -----------Building
MA -----------Control Level
MACH----------- Control Level
MIC -----------Control Level
EE -----------Embedded
EC -----------Embedded
Emb -----------Embedded
I have resolved the grouping issue by using Series Groups and writing expression in series label properties "=IIF(Previous(Fields!Project_Group.Value) = Fields!Project_Group.Value,"",Fields!Project_Group.Value)"...
Can anybody help me to show the quarter in x axis from month?
I have one ssrs report having matrix table which looks like this
YEAR A1 B1 Total percentage
2012 23 11 34
2013 12 12 24
2014 32 43 75
here i need to find percentage using below formula in ssrs expression
(Total of current year-Total of previous year)/(Total of previous year)*100
[for ex take 2012 - (Total for 2012-Total for 2011)/(Total for 2011)*100
The easiest way is to add a column to your data set that had the previous year total. Then you would right click the Percentage field and create an expression like the one above you want to calculate.
Expression Examples
One way easy way would be to use the Function previous, in SSRS this function returns the previous row item. Calculating the percentage would then be something like:
((Previous(Count(Fields!Day.Value))-ReportItems!Textbox22.Value) / ReportItems!Textbox22.Value )
Note: Textbox22.Value would be the base item/count you are comparing as a percentage.
I've got a chart that overlays the past 2 years (taken from the current date) worth of data onto a 1 year range, so the monthly values can be compared between years. The x-axis values are week numbers.
Currently, I've got the x-axis like this:
-------------------- etc
1 2 3 4 5
What I want is to start the x-axis with the week for the earliest date in my data set, so my x-axis looks like this:
--------------------------...-------
49 50 51 52 1 2 3 ... 47 48
How do I get the chart control to get my x-axis to appear like this?
You need to have another column that contains the year, sort by this first, then the week number, then only display the week number in the axis.
So assuming your data is something like:
You would apply two sorts to the category group, Year then Week, but only display Week in the axis label.
I have left all the Category Axis Properties as default:
This gives the expected result:
I have a dataset which looks like this
ProjectName MonthsThisYear CompletionDate
ProjectA 5 5/1/2013
ProjectB 7 7/15/2013
ProjectC 10 10/21/2013
I want to bar plot a graph where Y axis is project Name and X axis is January 2013, February 2013 ... December 2013.
Now the bar against projectA must be 5 units long, ProjectB is 7 units long and the bar for Project C should be 10 units long.
so that people can see that ProjectA is completed in May, ProjectB is completed in July and project C in October.
How can I plot this graph?
currently I can plot this correctly... but the X-Asix has 0, 2, 4, 6, 8, 10, 12 on it rather than month names.
I am on SSRS 2008 R2.
This is what I see right now
I just want to see month names and year on X axis.
Maybe some more question detail would be useful, but here's one way that works with your data:
The main issue we're facing is that typically a date is the category, but in this case it's actually the Data value, which gives us less control over the labels compared to a category group.
First, set up a chart with a Category Group based on ProjectName, and a Data expression like:
=DateSerial(Year(Fields!CompletionDate.Value), Month(Fields!CompletionDate.Value), 1)
i.e. the first of the month of each CompletionDate value, otherwise your bars will be between months.
Next, we need to sort out the X axis:
In my example I set Minimum to:
=DateAdd(DateInterval.Month
, -1
, DateSerial(Year(Min(Fields!CompletionDate.Value)), 1, 1))
i.e. December for the last year. Set Maximum to:
=DateSerial(Year(Max(Fields!CompletionDate.Value)), 12, 31)
i.e. the end of the year.
Set Interval to 1 and Interval Type to Months.
Format the X Axis to MMM yyyy.
Looks OK:
If you can actually add a Year column with a value 2013 or whatever, pretty much all of the expressions above can be simplified. For example, I've ignored MonthsThisYear, but if you have a Year column you can build the start of the month value based on MonthsThisYear and Year.