Currently I use 3 measures to calculate an average percentage using a (x+y+z)/3 method.
The problem I have however is that there will be no values for one of the measures in some instances but the total will still be divided by three.
Is there a formula that I can use to calculate the average of the three measures whilst ignoring any measures that contain no values?
Solved! Go to Solution.
It's the comparisons that yield the booleans . Cast them to int:
Measure = VAR Count_ = INT ( [Measure1] <> BLANK () ) + INT ( [Measure2] <> BLANK () ) + INT ( [Measure3] <> BLANK () ) RETURN DIVIDE ( [Measure1] + [Measure2] + [Measure3], Count_ )
or otherwise:
Measure = VAR Count_ = IF ( [Measure1] <> BLANK (), 1, 0 ) + IF ( [Measure2] <> BLANK (), 1, 0 ) + IF ( [Measure3] <> BLANK (), 1, 0 ) RETURN DIVIDE ( [Measure1] + [Measure2] + [Measure3], Count_ )
Thanks for your help. This saved me a ton of time.
Hi @CameronTCD
Something like
Measure = VAR Count_ = [Measure1] <> BLANK () + [Measure2] <> BLANK () + [Measure3] <> BLANK () // Check how many are non-blank RETURN DIVIDE ( [Measure1] + [Measure2] + [Measure3], Count_ ) // And divide by that count
Thank you for your response @AlB
I have inputed the suggested code however now, when updating the visuals, I recieve the following error:
Do you have any ideas?
No values in any of the measures or related values are categorised as TRUE/FALSE so I'm lost!
It's the comparisons that yield the booleans . Cast them to int:
Measure = VAR Count_ = INT ( [Measure1] <> BLANK () ) + INT ( [Measure2] <> BLANK () ) + INT ( [Measure3] <> BLANK () ) RETURN DIVIDE ( [Measure1] + [Measure2] + [Measure3], Count_ )
or otherwise:
Measure = VAR Count_ = IF ( [Measure1] <> BLANK (), 1, 0 ) + IF ( [Measure2] <> BLANK (), 1, 0 ) + IF ( [Measure3] <> BLANK (), 1, 0 ) RETURN DIVIDE ( [Measure1] + [Measure2] + [Measure3], Count_ )
You saved my day! THANKS A LOT!
Awesome, Thanks a ton for this!
Thank you for this solution it is exactly what I was looking for...
Hey, this works great.
Measure =
VAR Count_ =
INT ( [Measure1] <> BLANK () )
+ INT ( [Measure2] <> BLANK () )
+ INT ( [Measure3] <> BLANK () )
RETURN
DIVIDE ( [Measure1] + [Measure2] + [Measure3], Count_ )
But if i want to add the ALL function to this, ignoring filtering - how would that be done?
Hi Something like
CALCULATE([Measure1], ALL (Table1) )
applied to each of the measures should work. You would need to provide more details for a more accurate answer though
Please mark the question solved when done and consider giving kudos if posts are helpful.
Cheers
Works a charm.
Thank you for your help.
- Cameron
@AlB wrote:It's the comparisons that yield the booleans . Cast them to int:
Measure = VAR Count_ = INT ( [Measure1] <> BLANK () ) + INT ( [Measure2] <> BLANK () ) + INT ( [Measure3] <> BLANK () ) RETURN DIVIDE ( [Measure1] + [Measure2] + [Measure3], Count_ )or otherwise:
Measure = VAR Count_ = IF ( [Measure1] <> BLANK (), 1, 0 ) + IF ( [Measure2] <> BLANK (), 1, 0 ) + IF ( [Measure3] <> BLANK (), 1, 0 ) RETURN DIVIDE ( [Measure1] + [Measure2] + [Measure3], Count_ )
User | Count |
---|---|
118 | |
62 | |
56 | |
47 | |
40 |
User | Count |
---|---|
111 | |
65 | |
63 | |
52 | |
48 |