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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
ckausihan_12
Helper I
Helper I

Suma los primeros 3 rangos

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.

EstudianteIdAsuntoGradorangograde_sum
test11Matemáticas6114
test11Geo4214
test11Largo2314
test11Largo2314
test11Cama1414
test11Cama1414

Rango de Rango (Rank)
RANKX (
ALL ('Tabla'[grado]),
CALCULAR (
MAX('Tabla'[grado]),
ALLEXCEPT (
'Mesa',
'Tabla'[id],
'Tabla'[grado]
)
)
)
grade_sum de la casa de los grade_sum
CALCULAR (
SUMX(TOPN ( 3, 'Table', FIRSTNONBLANK('Table'[rank],'Table'[grade]), ASC ), 'Table'[grade] ),
ALLEXCEPT ( 'Tabla', 'Tabla'[id])
)
1 ACCEPTED SOLUTION
v-rzhou-msft
Community Support
Community Support

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:

1.png

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.

View solution in original post

6 REPLIES 6
v-rzhou-msft
Community Support
Community Support

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:

1.png

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.

amitchandak
Super User
Super User

@ckausihan_12 , Probar como

Top 3 - CALCULATE(sum('Table'[grade_sum]),TOPN(3,ALL ('Table'[grade]),calculate(MAX('Table'[grade])),DESC),VALUES('Table'[grade]))

@amitchandak Esto no funcionó.

QQCFA
Frequent Visitor

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.

@QQCFA

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.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors