Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowGet inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.
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!
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!
Check out the February 2025 Power BI update to learn about new features.
User | Count |
---|---|
31 | |
31 | |
20 | |
15 | |
12 |
User | Count |
---|---|
21 | |
20 | |
16 | |
10 | |
9 |