Forum Discussion
Calculating Percentage using Groupby
I need to make a table with the percentage of compliance per person. Percentage of compliance is equivalent to the number of YES over the number of rows related to a particular person. How am I suppose to compute this using DAX? I have the idea to use GROUPBY but I don't exactly know how to do it. The data kind of looks like this:
Thanks!
Anonymous
If you directly want a calculated table as an OUTPUT,,, then goto Modelling Tab>>New Table and use this formula
Table = SUMMARIZE ( TableName, TableName[Person], "%age of compliance", VAR totalCountforaperson = CALCULATE ( COUNT ( TableName[Person] ), ALLEXCEPT ( TableName, TableName[Person] ) ) VAR CountwithYes = CALCULATE ( COUNT ( TableName[Person] ), FILTER ( ALLEXCEPT ( TableName, TableName[Person] ), TableName[Compliance] = "Yes" ) ) RETURN DIVIDE ( CountwithYes, totalCountforaperson ) )Hi Anonymous
The below calculated table will gget you pretty close
New Table = ADDCOLUMNS( SUMMARIZECOLUMNS( 'Table1'[Person], "Rows Total",COUNTROWS('Table1') , "Compliant",COUNTROWS(Filter('Table1','Table1'[Compliance]="Yes"))+0 ), "Ratio" , DIVIDE([Compliant],[Rows Total]) )
11 Replies
- Zubair_MuhammadCommunity Champion
HI Anonymous
Try this
= VAR totalCountforaperson = CALCULATE ( COUNT ( TableName[Person] ), ALLEXCEPT ( TableName, TableName[Person] ) ) VAR CountwithYes = CALCULATE ( COUNT ( TableName[Person] ), FILTER ( ALLEXCEPT ( TableName, TableName[Person] ), TableName[Compliance] = "Yes" ) ) RETURN DIVIDE ( CountwithYes, totalCountforaperson )- AnonymousNot applicable
Hi Zubair, thanks for replying! Is the formula above supposed to return a table?
- Zubair_MuhammadCommunity Champion
Hi,
No. Its a MEASURE.
If you put it in a TABLE VISUAL alongwith Names of Persons you will get the desired percentages
Do you need a calcuated table?