Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Espero estar redactando esto correctamente. Tengo una solicitud de datos para mostrar el porcentaje de estudiantes que obtuvieron una D o F en su última tarjeta de informe.
Quiero que el usuario final pueda usar un parámetro o algo así para que pueda seleccionar un umbral mínimo que calcule el porcentaje de alumnos que cumplen o superan ese umbral. Usando los datos de muestra a continuación, si el usuario final selecciona 2, entonces el gráfico de columnas apiladas del 100% mostraría que el 75% de los estudiantes tienen 2 o más Ds o Fs y el 25% no. Si se seleccionaran 3, entonces volvería a calcular para mostrar que el 50% tiene 3 o más Ds/Fs y el 50% no.
A continuación se muestra una copia de los datos de muestra y aquí un enlace al archivo pbix de muestra:
https://drive.google.com/file/d/1fPdCS7gRuaHimtxKiP7K9PktJmpKUVsT/view?usp=sharing
StudentID | Año escolar | Término | Marca | D/F |
1 | 2020 | S1 | A | 0 |
1 | 2020 | S1 | B | 0 |
1 | 2020 | S1 | A | 0 |
1 | 2020 | S1 | D | 1 |
1 | 2020 | S1 | F | 1 |
1 | 2020 | S1 | D | 1 |
2 | 2020 | S1 | A | 0 |
2 | 2020 | S1 | B | 0 |
2 | 2020 | S1 | D | 1 |
2 | 2020 | S1 | D | 1 |
2 | 2020 | S1 | F | 1 |
2 | 2020 | S1 | D | 1 |
3 | 2020 | S1 | A | 0 |
3 | 2020 | S1 | A | 0 |
3 | 2020 | S1 | A | 0 |
3 | 2020 | S1 | A | 0 |
3 | 2020 | S1 | A | 0 |
3 | 2020 | S1 | A | 0 |
4 | 2020 | S1 | C | 0 |
4 | 2020 | S1 | C | 0 |
4 | 2020 | S1 | C | 0 |
4 | 2020 | S1 | C | 0 |
4 | 2020 | S1 | D | 1 |
4 | 2020 | S1 | D | 1 |
Solved! Go to Solution.
Hola @adamwakatsuki. Prueba esto...
Percent Students With Failing Grades =
VAR TotalStudents =
CALCULATE(
DISTINCTCOUNT(Marks[StudentID]),
FILTER(
ALLSELECTED(Marks),
Marks[School Year] = SELECTEDVALUE(Marks[School Year]) &&
Marks[Term] = SELECTEDVALUE(Marks[Term])
)
)
VAR StudentTermSummary =
SUMMARIZE(
FILTER(
ALLSELECTED(Marks),
Marks[School Year] = SELECTEDVALUE(Marks[School Year]) &&
Marks[Term] = SELECTEDVALUE(Marks[Term])
),
Marks[StudentID],
Marks[School Year],
Marks[Term],
"FailingGrades",
CALCULATE(
COUNTROWS(Marks),
Marks[Mark] IN {"D", "F"}
) + 0
)
VAR StudentsWithFailingGrades =
CALCULATE(
DISTINCTCOUNT(Marks[StudentID]),
FILTER(
StudentTermSummary,
[FailingGrades] >= SELECTEDVALUE('Number of Failing Grades'[Number of Failing Grades])
)
)
RETURN
DIVIDE(
StudentsWithFailingGrades,
TotalStudents,
BLANK()
)
¡Espero que esto ayude! 🙂
Hola, @adamwakatsuki
Según tu descripción, puedo entender lo que quieres conseguir. Desea obtener un gráfico dinámico de columnas apiladas al 100% en función del valor seleccionado de la segmentación. Puedes probar mis pasos:
Students earned more than selected number =
var _summarize=
SUMMARIZE('Marks',[StudentID],"D/F",SUM(Marks[D/F]))
var _selectedvalue=SELECTEDVALUE('Number of Failing Grades'[Number of Failing Grades])
var _total=DISTINCTCOUNT('Marks'[StudentID])
var _count=
COUNTX(FILTER(_summarize,[D/F]>=_selectedvalue),[StudentID])
return
DIVIDE(_count,_total)
Students earned less than selected number =
1-[Students earned more than selected number]
Y puedes conseguir lo que quieras.
Puede descargar mi archivo pbix de prueba aquí
Saludos
Equipo de apoyo a la comunidad _Robert Qin
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@adamwakatsuki ¡Voy a necesitar que convenzas a mi esposa de eso! 😉
¡Me alegro de poder ayudar!
Hola @adamwakatsuki. Prueba esto...
Percent Students With Failing Grades =
VAR TotalStudents =
CALCULATE(
DISTINCTCOUNT(Marks[StudentID]),
FILTER(
ALLSELECTED(Marks),
Marks[School Year] = SELECTEDVALUE(Marks[School Year]) &&
Marks[Term] = SELECTEDVALUE(Marks[Term])
)
)
VAR StudentTermSummary =
SUMMARIZE(
FILTER(
ALLSELECTED(Marks),
Marks[School Year] = SELECTEDVALUE(Marks[School Year]) &&
Marks[Term] = SELECTEDVALUE(Marks[Term])
),
Marks[StudentID],
Marks[School Year],
Marks[Term],
"FailingGrades",
CALCULATE(
COUNTROWS(Marks),
Marks[Mark] IN {"D", "F"}
) + 0
)
VAR StudentsWithFailingGrades =
CALCULATE(
DISTINCTCOUNT(Marks[StudentID]),
FILTER(
StudentTermSummary,
[FailingGrades] >= SELECTEDVALUE('Number of Failing Grades'[Number of Failing Grades])
)
)
RETURN
DIVIDE(
StudentsWithFailingGrades,
TotalStudents,
BLANK()
)
¡Espero que esto ayude! 🙂
Dejé fuera una cosa... para su gráfico de columnas apiladas, necesitará una segunda medida.
Other Measure = 1 - [Percent Students With Failing Grades]