cancel
Showing results for
Did you mean: Helper II

## Success Rate (%) by category

Hello all!

I am struggling with what seems to be an easy task.

I have a table named "success" that looks like the one below. I have the Category and the Outcome, and I would like to calculate the Success Rate for each category, such that the numbers are as the ones indicated in the column "Success Rate". I tried different methods with Count and Filter but failed every time.  Thank you!

Category  Outcome  Success Rate

 A TRUE 100% B FALSE 0% D TRUE 100% A TRUE 100% B FALSE 50% C FALSE 50% E FALSE 50% A TRUE 100% E FALSE 50% C TRUE 50%
1 ACCEPTED SOLUTION Super User IV

@Bob1410 - Here is the column you asked for. PBIX is attached below sig. Table (19)

``````Success Rate =
VAR __True = COUNTROWS(FILTER('Table (19)',[Category]=EARLIER([Category]) && [Outcome]))
VAR __False = COUNTROWS(FILTER('Table (19)',[Category]=EARLIER([Category]) && NOT([Outcome])))
VAR __Result = DIVIDE(__True,__True+__False,0)
RETURN
IF(ISBLANK(__Result),0,__Result)``````

---------------------------------------

##### I have a NEW book! DAX Cookbook from Packt
Over 120 DAX Recipes!

Proud to be a Super User!

2 REPLIES 2 Super User IV

@Bob1410 - Here is the column you asked for. PBIX is attached below sig. Table (19)

``````Success Rate =
VAR __True = COUNTROWS(FILTER('Table (19)',[Category]=EARLIER([Category]) && [Outcome]))
VAR __False = COUNTROWS(FILTER('Table (19)',[Category]=EARLIER([Category]) && NOT([Outcome])))
VAR __Result = DIVIDE(__True,__True+__False,0)
RETURN
IF(ISBLANK(__Result),0,__Result)``````

---------------------------------------

##### I have a NEW book! DAX Cookbook from Packt
Over 120 DAX Recipes!

Proud to be a Super User! Super User IV

A new measure like

Calculate(Divide(calculate(Count(Table[Outcome]),[Outcome] ="TRUE") ,Count(Table[Outcome])), allexcept(Table,Table[Category]))

Or a new column

column =
var _cnt =countx(filter(Table , [Category] =earlier([Category])),[Category])
var _cntTR =countx(filter(Table , [Category] =earlier([Category]) && [Outcome] ="TRUE"),[Category])
return
divide( _cntTR,_cnt)   