Forum Discussion
Count only compliant user
- Anonymous2 years ago
it seems like you figured it out, but the reason you were seeing it return 843, was because it was only counting those who had not completed any courses, Non-compliant users should include those who have completed courses, ie: any user whose number of completed course does not equal the number of courses assigned.
[TotalCourses] <> [CompletedCourses]So at the end of the measure instead of an =, you would use <> instead of switching Yes to No
Hi Tom,
I used this to count compliant users, which returns the right number, although tweaking it to show non-compliant is not returning the right number.
Hi Patricia_LaVish ,
Maybe this one for # compliant user?
Measure 3 =
VAR _helpTable =
SUMMARIZE (
'Table',
[User],
"isCompleted", IF ( CALCULATE ( COUNTROWS ( 'Table' ), ALLEXCEPT ( 'Table', 'Table'[User] ),'Table'[Completed] = "No" ) = 0, 1, 0 )
)
VAR _allUsers = DISTINCTCOUNT ( 'Table'[User] )
RETURN
SUMX( _helpTable, [isCompleted])
Do not forget to mark the solution as an answer, if they solved your query 🙂
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/
- Patricia_LaVish2 years agoFrequent Visitor
Hi tackytechtom ,
I think I don't need to create VAR _allUsers as I'm not using it later,right?. Like what I did in my answer?.
Any idea about why it's wrongfully counting non-compliant users?
Thanks!
- tackytechtom2 years agoMost Valuable Professional
hi Patricia_LaVish ,
yes, you are right 🙂 I guess I was a bit too quick: If you wanna know only the ones that have completed all courses, then obviously you do not need to count all users.
For your question, the main formular "IF ( CALCULATE ( COUNTROWS ( 'Courses' ), ALLEXCEPT ( 'Courses', 'Courses'[Email address] ),'Courses'[Completed] = "No" ) = 0, 1, 0 )" checks if a user had no "not-completed" courses (= the user completed all courses)
If you now use "IF(CALCULATE(COUNTROWS('Courses'), ALLEXCEPT('Courses','Courses'[Email address]),'Courses'[Completed]="Yes") =0,1,0)", then you are checking whether a user had exactly 0 completed courses. This, however, will not give you the right result as, i.e. user1 had 2 completed and 2 uncompleted courses, meaning that user would fall under the radar.
In order to count the users that at least had one uncompleted course, you could count all user and substract all the ones that only had completed courses, like this one:
Measure 4 = VAR _helpTable = SUMMARIZE ( 'Table', [User], "isCompleted", IF ( CALCULATE ( COUNTROWS ( 'Table' ), ALLEXCEPT ( 'Table', 'Table'[User] ),'Table'[Completed] = "No" ) = 0, 1, 0 ) ) VAR _allUsers = DISTINCTCOUNT ( 'Table'[User] ) RETURN _allUsers - SUMX( _helpTable, [isCompleted])Hope this helps 🙂
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/- Patricia_LaVish2 years agoFrequent Visitor
Hi tackytechtom
Thanks for the quick answer!
I've tried it, and numbers are better now, but still wrong. Now I get 2774 compliant and 7442 not compliant, while the total number of users is 8285 😞