Forum Discussion
Create a table with a variable column dependant on slicers
Hello,
I have my main table, to which I apply several slicers to filter the data. After slicing, I would like to count the occurrence of certain events within an specified range. Something as the following table:
| Lower Bound | Upper bound | Count |
| -1 | -0.5 | x |
| -0.5 | -0.25 | x |
| -0.25 | -0.1 | x |
| -0.1 | 0 | x |
| 0 | 0.1 | x |
| 0.1 | 0.25 | x |
| 0.25 | 0.5 | x |
| 0.5 | 1 | x |
Where the count is for all number of events between lower and upper bound.
For the moment I tried to create a new column with the following formula:
HitRate =
VAR Hits = CALCULATE
(
COUNT('Database'[Returns]),
FILTER(
'Database',
'Database'[Returns] < 'Hit Rate Table'[UpperBound] &&
'Database'[Returns] > 'Hit Rate Table'[LowerBound]
)
)
VAR TotalHit = COUNT('Database'[Returns])
RETURN
Hits/TotalHit
Hi nicolasvargas ,
Use lower bound as slicer and create measure like this:
HitRate2 = VAR min_lower_bound = SELECTEDVALUE ( 'Hit Rate Table'[Lower Bound] ) VAR max_upper_bound = SELECTEDVALUE ( 'Hit Rate Table'[Upper bound] ) VAR Hits = CALCULATE ( COUNTROWS (Database), FILTER ( Database, Database[Returns] >= min_lower_bound && Database[Returns] < max_upper_bound ) ) VAR TotalHit = COUNTROWS ( ALL ( Database ) ) RETURN IF ( ISFILTERED ( 'Hit Rate Table'[Lower Bound] ), DIVIDE ( Hits, TotalHit ), 1 )Best Regards,
Liang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
7 Replies
- amitchandakSuper User
nicolasvargas , I doubt you can create a table that can change with slicer value.
- nicolasvargasHelper I
amitchandak so to resolve this, would you recommend to create 8 different measures each with it's own parameters?
- V-lianl-msftCommunity Support
Hi nicolasvargas ,
Use lower bound as slicer and create measure like this:
HitRate2 = VAR min_lower_bound = SELECTEDVALUE ( 'Hit Rate Table'[Lower Bound] ) VAR max_upper_bound = SELECTEDVALUE ( 'Hit Rate Table'[Upper bound] ) VAR Hits = CALCULATE ( COUNTROWS (Database), FILTER ( Database, Database[Returns] >= min_lower_bound && Database[Returns] < max_upper_bound ) ) VAR TotalHit = COUNTROWS ( ALL ( Database ) ) RETURN IF ( ISFILTERED ( 'Hit Rate Table'[Lower Bound] ), DIVIDE ( Hits, TotalHit ), 1 )Best Regards,
Liang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.