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

Level up your Power BI skills this month - build one visual each week and tell better stories with data! Get started

Reply
lutho
Helper II
Helper II

Advise on best approach -

I all, I am looking fo some guidance on best practice.

I am creating a student dashboard. I have a big data table that contains data from an annual student test covering multiple years. I can select a student via basic slicer and diplay current subjects and the series of  annual scores.

However I need to show student performance in the context of the other students for that year either as a box or violin plot (ie. Year 5 student vs all Year 5 students in 2013, Year 6 student vs all year 6 students in 2014 etc). The slicer reduces the data set to just the student so the box/violin ends up with one data point.

I can easily create an alternate table using SQL but it seems so wrong to not do this in PBI. What would be the best practice approach? I just need a pointer and can run with it from there.

Thanks in advance.

1 ACCEPTED SOLUTION
westwrightj
Resolver III
Resolver III

Hey @lutho 

 

  As @amitchandak  mentioned it would be best to have some sample data and a sample output to answer this question.

 

Without this, here is some sample data I have included to try and meet your solution

 

westwrightj_0-1605207343644.png

 

Also I've gone ahead and duplicate this table in the query editor and paried it down just to unique Student-Year combinations

westwrightj_1-1605209055596.png

 

The tables are connected by year and one filters the other in a one way many to many relationship

 

westwrightj_2-1605209080295.png

 

Now we can write a measure like this

 

Students From Same Year as Selected = 

var TheStudent = VALUES('Test Data (2)'[Student])

var TheYear = CALCULATE(MAX('Test Data'[Year]), 'Test Data'[Student] in TheStudent)

return

CALCULATE(MAX('Test Data'[Score]), 'Test Data'[Year] = TheYear)

 

This will allow us to make a violin chart that will adjust based on the year of our selected student

 

westwrightj_3-1605209158882.png

 

westwrightj_4-1605209168404.png

 

If you wanted to also see the selected student's score you could add a card with this measure

 

Student Score = 

var TheSelectedStudent = SELECTEDVALUE('Test Data (2)'[Student])

return

CALCULATE(MAX('Test Data'[Score]), 'Test Data'[Student] = TheSelectedStudent)

westwrightj_5-1605209261538.png

 

 

 

westwrightj_6-1605209271142.png

 

 

Let me know if this helps or if you were looking for different functionality.

 

 

View solution in original post

2 REPLIES 2
westwrightj
Resolver III
Resolver III

Hey @lutho 

 

  As @amitchandak  mentioned it would be best to have some sample data and a sample output to answer this question.

 

Without this, here is some sample data I have included to try and meet your solution

 

westwrightj_0-1605207343644.png

 

Also I've gone ahead and duplicate this table in the query editor and paried it down just to unique Student-Year combinations

westwrightj_1-1605209055596.png

 

The tables are connected by year and one filters the other in a one way many to many relationship

 

westwrightj_2-1605209080295.png

 

Now we can write a measure like this

 

Students From Same Year as Selected = 

var TheStudent = VALUES('Test Data (2)'[Student])

var TheYear = CALCULATE(MAX('Test Data'[Year]), 'Test Data'[Student] in TheStudent)

return

CALCULATE(MAX('Test Data'[Score]), 'Test Data'[Year] = TheYear)

 

This will allow us to make a violin chart that will adjust based on the year of our selected student

 

westwrightj_3-1605209158882.png

 

westwrightj_4-1605209168404.png

 

If you wanted to also see the selected student's score you could add a card with this measure

 

Student Score = 

var TheSelectedStudent = SELECTEDVALUE('Test Data (2)'[Student])

return

CALCULATE(MAX('Test Data'[Score]), 'Test Data'[Student] = TheSelectedStudent)

westwrightj_5-1605209261538.png

 

 

 

westwrightj_6-1605209271142.png

 

 

Let me know if this helps or if you were looking for different functionality.

 

 

amitchandak
Super User
Super User

@lutho ,Can you share sample data and sample output in table format? Or a sample pbix after removing sensitive data.

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Helpful resources

Announcements
April Power BI Update Carousel

Power BI Monthly Update - April 2026

Check out the April 2026 Power BI update to learn about new features.

Fabric SQL PBI Data Days

Data Days 2026 coming soon!

Sign up to receive a private message when registration opens and key events begin.

New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.