Hola, tengo una tabla con los resultados de los estudiantes y quiero sumar los 3 mejores grados. Sin embargo, un estudiante puede tener el mismo tema varias veces con el mismo resultado. Estoy poniendo las calificaciones en un orden de clasificación y luego sumando el top 3, sin embargo, si una calificación está duplicada y tiene como rango de 1,2 o 3 ese grado se incluye en la suma. En el ejemplo siguiente espero grade_sum sea 12, agregando 6+4+2, pero su adición de 6+4+2+2 ya que hay dos filas con el tema como lang con un grado de 2, meaing tiene un rango de 3.
Estudiante | Id | Asunto | Grado | rango | grade_sum |
test1 | 1 | Matemáticas | 6 | 1 | 14 |
test1 | 1 | Geo | 4 | 2 | 14 |
test1 | 1 | Largo | 2 | 3 | 14 |
test1 | 1 | Largo | 2 | 3 | 14 |
test1 | 1 | Cama | 1 | 4 | 14 |
test1 | 1 | Cama | 1 | 4 | 14 |
Solved! Go to Solution.
Hola @ckausihan_12
Puede probar mi dax para crear columnas calculadas.
Rank = RANKX (FILTER('Table','Table'[id]=EARLIER('Table'[id])),'Table'[grade],,DESC,Dense)
Sum of Top 3 Per Student =
SUMX (
FILTER (
SUMMARIZE (
'Table',
'Table'[student],
'Table'[id],
'Table'[subject],
'Table'[grade],
'Table'[Rank]
),
[id] = EARLIER ( [id] )
&& [Rank] <= 3
),
[grade]
)
El resultado es el siguiente:
Puede descargar el archivo pbix desde este enlace: Suma los primeros 3 rangos
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @ckausihan_12
Puede probar mi dax para crear columnas calculadas.
Rank = RANKX (FILTER('Table','Table'[id]=EARLIER('Table'[id])),'Table'[grade],,DESC,Dense)
Sum of Top 3 Per Student =
SUMX (
FILTER (
SUMMARIZE (
'Table',
'Table'[student],
'Table'[id],
'Table'[subject],
'Table'[grade],
'Table'[Rank]
),
[id] = EARLIER ( [id] )
&& [Rank] <= 3
),
[grade]
)
El resultado es el siguiente:
Puede descargar el archivo pbix desde este enlace: Suma los primeros 3 rangos
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
How will this work if there are muktipes of rank 1 or 2? At the moment those duplicates are included in the 'Sum of Top 3 Per Student' calculation.
@ckausihan_12 , Probar como
Top 3 - CALCULATE(sum('Table'[grade_sum]),TOPN(3,ALL ('Table'[grade]),calculate(MAX('Table'[grade])),DESC),VALUES('Table'[grade]))
Parece que Lang tiene 2 filas idénticas que no es incorrecta como usted menciona, pero está haciendo que el código devuelva ambos por lo tanto el resultado incorrecto. Agregaría una columna de índice en la tabla (puede agregar fácilmente desde el Editor de consultas) y, a continuación, crear una nueva columna que concatena el identificador o el nombre con el índice para crear una fila única y, a continuación, ajustar el código (ALLEXCEPT) para usar la nueva columna. Espero que esto ayude.
Intenté lo que me sugeriste. Pero el uso de la nueva columna única en EL ALLEXCEPT no es agregar las calificaciones juntas. La tabla contiene varios alumnos.