Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Join 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.

Reply
Anonymous
Not applicable

Create a table of measures

I have a table like this:

survey_idquestion_nameanswerperson_id
1question1yes1
1question1no2
1question1no3
1question1no4
1question1yes5
2question1yes1
2question1yes2
2question1yes3
2question1no4
1question2no6
1question2no7
1question2yes8
1question2yes9
2question2yes5
2question2no6
2question2no7

 

So I calculate a simple % of yes answeres per survey. Also, I calculated average of previous measure between surveys.
For %:

%_ =
var tom = CALCULATE(DISTINCTCOUNT(table[person_id]), 'table'[answer] = "yes", question = "question1")
var tot = CALCULATE(DISTINCTCOUNT(table[person_id]), ALL('table'[answer]), question = "question1")
return tom/tot
same for quesion2
 
Average between surveys:
%Q1_unaided average per survey =
AVERAGEX(KEEPFILTERS(VALUES('table'[survey_id])), CALCULATE([%_]))


The problem, I need to plot it like that:
Gleb_1-1668876555448.png

and be able to filter it by survey, so only blue bar will change, average is static.

I hope I covered all and delivered the problem well. Thanks in advance. ( The visual could be a bit different, it could be a space betwen blue and gray bars


 

1 ACCEPTED SOLUTION
Anonymous
Not applicable

HI @Anonymous,

Did you mean to modify the formula to auto-fit each question types in your formula? If that is the case, you can try to use following measure formula to replace the raw percentage formula:

%_ =
VAR tom =
    CALCULATE (
        DISTINCTCOUNT ( table[person_id] ),
        FILTER ( 'table', 'table'[answer] = "yes" ),
        VALUES ( 'table'question )
    )
VAR tot =
    CALCULATE (
        DISTINCTCOUNT ( table[person_id] ),
        ALLSELECTED ( 'table' ),
        VALUES ( 'table'question )
    )
RETURN
    tom / tot

Regards,

Xiaoxin Sheng

View solution in original post

2 REPLIES 2
Anonymous
Not applicable

HI @Anonymous,

Did you mean to modify the formula to auto-fit each question types in your formula? If that is the case, you can try to use following measure formula to replace the raw percentage formula:

%_ =
VAR tom =
    CALCULATE (
        DISTINCTCOUNT ( table[person_id] ),
        FILTER ( 'table', 'table'[answer] = "yes" ),
        VALUES ( 'table'question )
    )
VAR tot =
    CALCULATE (
        DISTINCTCOUNT ( table[person_id] ),
        ALLSELECTED ( 'table' ),
        VALUES ( 'table'question )
    )
RETURN
    tom / tot

Regards,

Xiaoxin Sheng

Jayee
Responsive Resident
Responsive Resident

Hi @Anonymous 

 

Try this measure

 

%Q1_unaided average per survey =
AVERAGEX(KEEPFILTERS(VALUES('table'[survey_id])), CALCULATE([%_],all(question)))

 

If this post helps, then please consider Accept it as the solution, Appreciate your Kudos!!

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.