Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.
Not sure how to approach this problem, and looking for perspectives please!
I work for a school trust. I want to create a matrix visual with demographic groups on the Y axis and week beginning dates along the X.
The idea is that the values will show the attendance of the school as it was at these dates, that is, cumulatively. The issue I'm running into is that the data export I have from our MIS is like this. It returns the number of possible sessions a student could have attended, and the number of actual sessions they attended. By dividing one by the other we get their attendance. You can see that I've added a CumPoss and CumPres column, the formula of these is;
Solved! Go to Solution.
Hi @v-kkf-msft,
Thanks for your help. I think your solution would have worked if the Y axis was just going to be individual students, but it is actually demographic groups of students belonging to certain categories. I think this meant that the ALLSELECTED function was therefore getting around the demographic groups filter. What I've done and has worked is use part of the code you suggested to create a seperate table like this
CumPresTbl =
CROSSJOIN(
// removing the filters from students
ALLSELECTED(
AttendanceSummaryByWeek[SchoolStudentId]
),
// and distinct weekstartdate values, duplicates removed
VALUES (
AttendanceSummaryByWeek[WeekStartDate]
)
)
This created student/weekdate combinations for weeks the student wasn't present for. I could then add a calculated column that summed their cumulative attendance, and was present in the totals. This is now showing the correct figures.
Thanks for your advice!
Hi @maxbradley ,
If you want to include the value of student B in your calculations, please try using CROSSJOIN ( ALLSELECTED ( Sheet2[Student] ) , VALUES ( Sheet2[WeekStartDate] ) ) in the iterator functions, like this.
Contain B Measure =
IF (
ISFILTERED ( Sheet2[Student] ),
[Measure],
AVERAGEX (
ADDCOLUMNS (
CROSSJOIN ( ALLSELECTED ( Sheet2[Student] ), VALUES ( Sheet2[WeekStartDate] ) ),
"_CumPres", [Measure] + 0
),
[_CumPres]
)
)
In the total section, this formula calculates rows that do not exist in the original data as 0 and then averages them.
If the problem is still not resolved, please provide detailed error information or the expected result you expect. Let me know immediately, looking forward to your reply.
Best Regards,
Winniz
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @v-kkf-msft,
Thanks for your help. I think your solution would have worked if the Y axis was just going to be individual students, but it is actually demographic groups of students belonging to certain categories. I think this meant that the ALLSELECTED function was therefore getting around the demographic groups filter. What I've done and has worked is use part of the code you suggested to create a seperate table like this
CumPresTbl =
CROSSJOIN(
// removing the filters from students
ALLSELECTED(
AttendanceSummaryByWeek[SchoolStudentId]
),
// and distinct weekstartdate values, duplicates removed
VALUES (
AttendanceSummaryByWeek[WeekStartDate]
)
)
This created student/weekdate combinations for weeks the student wasn't present for. I could then add a calculated column that summed their cumulative attendance, and was present in the totals. This is now showing the correct figures.
Thanks for your advice!
Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!
Check out the October 2025 Power BI update to learn about new features.