Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
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
Solved! Go to Solution.
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.
@nicolasvargas , I doubt you can create a table that can change with slicer value.
@amitchandak so to resolve this, would you recommend to create 8 different measures each with it's own parameters?
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.
@V-lianl-msft @amitchandak In this case the result works but only for the lower bound. The upper bound it is completely ignored in the formula. It is calculating the cummulative frequency instead of the frequency per tranche. How can we include the upper bound within the formula?
Hi @nicolasvargas ,
Is this problem sloved?
If not, please let me know.
Best Regards,
Liang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @nicolasvargas,
Based on your description, do you want to use both upper and lower bounds as slicers?
I'm a little confused about your scenario.
If the problem persists,could you share the sample pbix via cloud service like onedrive for business?
Please mask any sensitive data before uploading.
Best Regards,
Liang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
64 | |
55 | |
53 | |
36 | |
34 |
User | Count |
---|---|
85 | |
74 | |
55 | |
45 | |
43 |