Only displaying "tallest" bars in bar chart - powerbi

I am trying to create a clustered bar chart in PowerBI Desktop, where only the N "tallest" bars are displayed.
My dataset consists of a small number of rows but a large number of columns.
I have tried the following:
Transform the table in absolute values (since I am interested in bar height, not negative/postive strictly)
Try to apply the "top N" filter on the axis datafield
However, nothing happens. The chart currently looks like this (without applying the transformation of the absolute value): Clustered bar chart
I basically want the same chart, but only display the N tallest bars.

You might have to pivot your table, so you have a "column name" field and a "value" field.
Then you need to use the TOP N on the Legend field, like this:
Filters:
Result:

Related

Conditionally format a table based on average of dataset, but adhering to slicer selections

I have a simple CSV data set such as this.
ID,MainCategory,SubCategory,Type,Value
1,E,E1,Demo,5
2,N,N3,Install,2
3,E,E1,Demo,4
4,E,E2,Install,7
5,D,D1,Install,3
6,S,S2,PM,4
7,N,N2,Install,7
8,N,N2,Demo,1
9,E,E2,Demo,2
10,D,D2,Install,6
11,D,D3,PM,4
12,S,S1,PM,8
13,N,N1,Install,5
14,S,S3,Install,8
15,S,S1,Demo,9
16,E,E3,Demo,5
17,N,N2,Install,3
18,E,E2,PM,6
19,D,D2,PM,6
20,N,N3,Demo,6
21,S,S2,Demo,7
22,E,E3,Install,2
23,S,S1,Install,4
24,S,S2,PM,8
25,D,D1,Install,5
In my Power BI Desktop, I'd like to load this into a table, and conditionally format the Value column based on whether the value in each row is greater than or less than the average for the currently selected data set.
For instance, the average of Value considering the entire table is 5.08, so if there are no filters applied (as in, all my slicers are set to select nothing), I'd like all rows whose Value is 6 or more to be background colored in one color, and the others in another color. For this, I created two measures like so:
AvgOfVal = DIVIDE( SUM(G2G[Value]), COUNTA(G2G[ID]) )
BGColor = IF(SUM(G2G[Value]) > [AvgOfVal], "Light Pink", "Light Blue")
Then I tried to apply the BGColor measure for conditionally formatting the background, but this doesn't work as expected, and instead produces the result below.
I realize that this is due to the fact that the measure is calculated per row, so when conditional formatting is applied, as seen in the AvgOfVal column in the table, it calculates average per row instead of for the entire data set. How can I calculate a measure that takes into account the entire data set (considering slicers), and do the conditional formatting as I need.
Please keep in mind that if a user were to select a slicer filter (say, MainCategory = D), then I want the conditional formatting to reflect this. So in this case, given that AvgOfVal = 4.80 for MainCategory = D entries, I'd like all rows whose Value >= 5 to be in one color, and others in another color.
I realize that this is due to the fact that the measure is calculated per row
Yes. The key is understanding how that happens. When the measure is calculated a "context transition" happens and the current row is added to the filter context.
So what you want is a calculation that removes the row filter that was added in the context transition. So you need ALLSELECTED(), which does precisely that. eg
AvgOvVAl = CALCULATE( AVERAGE('data'[Value]), ALLSELECTED() )
Removing the "innermost" filter which in this case is the filter on the row, but leaving all other filters, ie filters added on the report, page, visual, or filters coming from interactions with other visuals like slicers.

PowerBI bar chart that filters legend results

How can I set a bar chart to only show legend items that have results when I run a filter?
e.g. I filter search someone's name who has data points for 5/15 categories. I would like my bar chart to only show the legend of those 5 categories and exclude the other 10. Say I then filter search a different person's name who has data points for a different 5 categories it will only show visualise those results and exclude the other data?
TIA!

Don't Summarize Option Problem In Power BI

What I Have?
So, I have 4 Columns, First is Date type which will be Axis Value (X- Axis), 3 Decimal Type Value (Values Field) which will represent as Line Chart i.e. 3 Lines inside the chart.
Problem?
When i drag and drop the Decimal Type Value inside the Values Field in Line Chart, it takes as SUM.
I already selected Don't Summarize in Column tools tab with Uncategorised as Data Category.
The problem is when I click the down arrow in the Values Field, it doesn't shows "Don't Summarize" Option.
Now I need my data as it is, no sum no count, nothing.
How Can I achieve that?
There is chance to duplicating the values so you might get more value than the present value. So have to create new table using below DAX then apply to you visual.
DISTINCT(SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
)

How to make chart ignore filter in matrix headers?

I am trying to make a chart with indicators that are alsoe headers of a matrix. My dataset has 4 variables (Date, Indicators (A,B,C,D), Currency and Value). I have a matrix where the rows are the "Currency", the columns are the Indicators A and B and the values are "Value". In my chart, the x axis is Indicators (C and D), the legend is the "Currency" and the values is "Values". I want to make this chart ignore what is selected in the matrix columns but I need it to be responsive to the matrix rows (currency). I tried some filters but it didn work.
In the Fig 1 (link below) we can see the screen if no filter is selected. And I want to select a currency (row) or a value in the matrix. But if I do it, my chat turns blank (Fig 2) where I want to see the values of C and D for the selected currency.
How can I do it?
All data and pibx are here!
Tks
Look at using the All() function, this restricts filters from affecting your measures

Color a row based on column value in Interactive report in Oracle Apex 4

I wanted to color the complete row based on a value of a column. My query looks like this:
select ID,
DB_NAME,
SERVER_NAME,
DB_STATUS,
SERVER_STATUS,
DB_SERVER_STATUS
from DB_SRVR_STAT_V;
If the DB_SERVER_STATUS = 'A' then I want the row to be colored
green or
if the DB_SERVER_STATUS = 'I' then I want the row to be
colored yellow or
if the DB_SERVER_STATUS = 'RO' then I want the
row to be colored red.
I have been looking to find a way to do this, but I haven't been able to get the result I want.
If your report is an Interactive report, you could highlight the rows on the report by going through Actions -> Format -> Highlight the rows by selecting the desired color and defining the condition for your column.