Indicators in a matrix - visual-studio

I'm trying to add some indicators into a matrix to show an increase or decrease from the previous year
This is my design view
And this is how it's viewed in the report
I would obviously like my up and down arrows to appear in the currently empty columns. Also I'm wondering if there is a way of deleting the first empty column after 2014/15 as there is no year to compare it to.

SSRS supports a function called Previous, which will be useful in your scenario. Assuming that the name of your column group is "Fiscal", the difference of two years can be calculated as
=Count(Fields!IDNUMBER.Value) - Previous(Count(Fields!IDNUMBER.Value), "Fiscal")
Because you can't know the range of the numbers in advance, I suggest to use a "numeric" expression like
=Sign(Count(Fields!IDNUMBER.Value) - Previous(Count(Fields!IDNUMBER.Value), "Fiscal"))
for the indicator, so the ranges can be defined by single values -1, 0 and 1:
To hide the first indicator column, right-click the column header in design view and click Column Visibility..., then in the cnfiguration dialog specify to hide based on an expression like
=IsNothing(Previous(Fields!Fiscal.Value, "Fiscal"))
Here's a screenshot of my design view:

Related

SSRS Scope with Row and Column groups issues

I'm trying to get percentage calculated for my tablix and have problem on very last column, which is outside of Column Group, can't make it work, I can't use Dataset as I have a filter on tablix level. Pic below illustrates all my setup. I Understand if you stay inside the box then you have all right scopes, curious if I can do any right click and see what scope is ??)
I need somehow to get value =1837 to use in pink boxes.
I tried to digest error message and tried all combo but not helps
Is this doable?
You can refer to your very last column which is outside the groups and the deatils with the following expression. Lets say your Total from YTD is in Textbox1. Then you can refer to this textbox (because its outside the detail rows):
=ReportItems!Textbox1.Value 'Result: 1837
But a better way to calculate the percentage in the pink boxes would be the following expression (this expression comes in the pink box):
=Sum(Fields!YTDDetail.Value, "TurnDays") / Sum(Fields!YTDDetail.Value, "Dataset")
This way you are dividing the grouped sum with the whole sum, which should result in your percentage if you format the output of the texbox as Number > Percentage.

Stop SSRS From Hiding Columns

How do I stop SSRS from hiding a column when previewing if the column has nothing more than empty rows? I have set all columns to be fully visible, yet the report preview does not show the empty columns. I know that this is a default feature within Visual Studio that hides all empty columns by default, so how do I change it so it can show all columns no matter what. Where can I change those settings?
If you mean the preview in the query designer of the dataset:
This is only possible when writing your own MDX since the generated code always generates a SELECT NON EMPTY for the measure axis. So removing the NON EMPTY part will always show your column/measure.
If you mean the ssrs report preview:
Columns only hide when using a table matrix with a column group. In this case make sure your dataset always returns each column group at least once, regardless of your chosen filters. E.g. if using MDX this could mean removing a NON EMPTY from your row axis or using the right-click option "include empty cells".
Clarification for comment plus possible workaround:
This "hiding columns" things is no feature. If the column isn't in the result of the dataset, SSRS can't know that this value even exists, so there is no solution if using a column group except for redesigning your query.
You could work around this by not using a column group and instead of using static "hard-coded" columns which, for example, sum the values depending on your group. See the following example screenshot i made: example

Show tablix total outside of table

I have a weekly report which totals anywhere from 200 - 1000 rows of data. For my accounting people, the total is the only value of import as they simply use it for accrual purposes. I would like to either have the total appear at the top of the report or in a separate text box indicating this is the total for the report. Does anyone have a good idea on how to accomplish this?
If I understand correctly you need to get the result of some aggregate function on a tablix shown in a textbox outside the tablix.
That can be achieved by placing a textbox anywhere on the report, and in the expression for that textbox add a reference to the dataset you need to aggregate, e.g.:
=Sum(Fields!SomeValue.Value, "myDataSet")
Where SomeValue is the name of the field you need to aggregate, and myDataSet is the name of the DataSet that fieldis in.
Your question has already been answered by the other answer. Just as an alternative, you could try one more thing.
On the "details" row group(which appears by default), right click and choose "Add Total".
This will appear in a separate text box outside the report.

Filter() formula ignoring blank cells

I'm trying to use the filter() formula within a spreadsheet, from another tab within that spreadsheet.
I've got a number of drop-down menus that, when used, bring up the relevant data from the table I'm filtering from.
I've managed to make it work when it's a table of data from row 2 downwards (row 1 being a header row), but now the table starts from the 6th row down with other information above it (most of it, however, is blank). As such, now all of the options come up automatically when the drop down menus are blank.
I either need the formula below to start from the 6th row down, or to ignore the blank cells. It must be an easy solution but for the life of me, I can't find it anywhere on the internet (I'm pretty new with spreadsheet formulas so please be gentle).
This is the formula I've been using that works when there are no blank rows:
=FILTER(Sheet2!A:T,(Sheet2!D:D=B12)+(Sheet2!F:F=C12)+(Sheet2!G:G=D12)+(Sheet2!H:H=E12)+(Sheet2!I:I=F12)+(Sheet2!N:N=G12)+(Sheet2!O:O=H12)+(Sheet2!T:T=I12))
If it helps, the drop-down options are both numbers and text, and I'm using Google Sheets rather than Excel.
You can probably just change your ranges to 'A6:T' instead of 'A:T'. 'A:A' range syntax gets all rows in that column. 'A6:A' will start it at 6 but not define an ending row, which I think is what you want.
This is your formula with those small changes:
=FILTER(Sheet2!A6:T,(Sheet2!D6:D=B12)+(Sheet2!F6:F=C12)+(Sheet2!G6:G=D12)+(Sheet2!H6:H=E12)+(Sheet2!I6:I=F12)+(Sheet2!N6:N=G12)+(Sheet2!O6:O=H12)+(Sheet2!T6:T=I12))
The =isBlank() formula may be useful to you as well. It takes a cell reference and returns true/false. You can wrap this in NOT() to give the opposite result, i.e =NOT(ISBLANK(A1)) will return true if there is a value.

Google Spreadsheets: Working with data inserted from forms across tabs

I'm in great need of help. I've a form which asks basic questions and puts the results into rows of an existing spreadsheet.
Specific data from those responses are "promoted" to 2nd, 3rd and 4th tabs based on IF formulas on tabs 2+ checking the value of a pull down selection on in the corresponding row on each previous tab. (Waterfall)
My challenge is - forms data is inserted into a new row (Does not use existing) and if I set the pulldown value to "Approved" on the first tab, the formulas on the second tab which were contiguous now skip the row where the form data was automatically entered.
I suspect I need to learn how to properly use ArrayFormula, etc, but have not managed to fix this looking at existing examples combined with my IF statements.
Help is appreciated. Sample is here. Safe to ignore the first and last tabs.
Thank you.
You can try using an open-ended range with ArrayFormula. For example, the formula on "2-Pipeline" in cell D3 could be:
=arrayformula(IF('1-IdeasReceived'!U2:U="Approved",'1-IdeasReceived'!L2:L, ))
The ranges U2:U and L2:L should pick up all rows in those columns, even after you've had forms submitted.
Since this is an ArrayFormula over column ranges, you only need it in cell D3; it will inject CONTINUE formulas down the rest of the column.
Warning: Your spreadsheet is combining dynamic row content (e.g. pulled from another sheet) with static content (e.g. "Environment, Health & Safety" column on "2-Pipeline" sheet). This is bound to result in misalignment if rows are added or deleted in the middle of the source data.

Resources