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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Top 20 ignorando filas en la tabla visual

Querido

He podido armar una tabla que muestra los 20 valores principales por línea de servicio, como en el ejemplo siguiente:

Línea de servicioLas 20 cantidades más
A

100.000

B200.000
C300.000
D250.000
Total850.000

Fórmula para la medida Importes superiores a 20o

calculate([WIP+ 2019 por proyecto],
filter(values('Rap+Transactions'[Project]),
if(rankx(all('Rap+Transactions'[Project]), [WIP+ 2019 por proyecto],,desc) <- 20, [WIP+ 2019 por proyecto], blank())))
Hasta ahora, todo está funcionando bien, ya que la tabla muestra correctamente los 20 principales importes por línea de servicio. Así que se muestran los 20 primeros para la línea A de servicio, top 20 para la línea de servicio B, etc.
Sin embargo, como paso siguiente, me gustaría ignorar el contexto de fila de las líneas de servicio para obtener un top 20 de importes en todas las líneas de servicio. Por ejemplo, si los 20 importes más grandes de mi origen de datos estarían vinculados a las líneas de servicio B y C, solo quiero que se cuenten estas cantidades, lo que daría como resultado una tabla como esta:

Línea de servicio

Top 20 en general
A0
B250.000
C350.000
D0
Total600.000

He intentado esta fórmula para obtener esto, pero esto no ignora el contexto de fila de las líneas de servicio:

Top 20 en total ?
calculate([WIP+ 2020 por proyecto],
all( 'Rap+Transactions'[Línea de Servicio]),
filter(values('Rap+Transactions'[Project]),
if(rankx(all('Rap+Transactions'[Project]), [WIP+ 2020 por proyecto],,desc) <- 20, [WIP+ 2020 por proyecto], blank())))

¿Puede alguien ayudarme a cambiar mi primera fórmula para que los 20 primeros se vuelvan a calcular para ignorar el contexto de fila de las líneas de servicio?

¡Gracias!

Saludos

1 ACCEPTED SOLUTION
v-yingjl
Community Support
Community Support

@aist

La función All() de la función rankx() debe ser todas ('Rap y Transacciones') para ignorar todos los filtros de la tabla, no columnas específicas, e intentar modificarlos de la siguiente manera:

Top 20 overall =
CALCULATE (
    [WIP+ 2020 per project],
    ALL ( 'Rap+Transactions'[Service Line] ),
    FILTER (
        VALUES ( 'Rap+Transactions'[Project] ),
        IF (
            RANKX ( ALL ( 'Rap+Transactions' ), [WIP+ 2020 per project],, desc ) <= 20,
            [WIP+ 2020 per project],
            BLANK ()
        )
    )
)

Y he creado una medida de muestra que puede referirse:

总体Top20 = 
VAR top20 =
    计算(
        [WIP + 2019每个项目],
        FILTER(
            'Table',
            IF(
                RANKX(ALL('Table')),[WIP + 2019每个项目],DESC)<= 20,
                [WIP + 2019每个项目],
                BLANK())
            )
        )
    )
返回
    IF(ISBLANK(top20),0,top20)

tp20.png

El siguiente archivo de ejemplo se incluye para ayudarle.

Los mejores saludos,
Equipo de Apoyo Comunitario , Yingying Li
Si este post está ahíAyuda., por favor considereAcédla como una solución,para ayudar a otros miembros a encontrarlo más rápido.

View solution in original post

2 REPLIES 2
v-yingjl
Community Support
Community Support

@aist

La función All() de la función rankx() debe ser todas ('Rap y Transacciones') para ignorar todos los filtros de la tabla, no columnas específicas, e intentar modificarlos de la siguiente manera:

Top 20 overall =
CALCULATE (
    [WIP+ 2020 per project],
    ALL ( 'Rap+Transactions'[Service Line] ),
    FILTER (
        VALUES ( 'Rap+Transactions'[Project] ),
        IF (
            RANKX ( ALL ( 'Rap+Transactions' ), [WIP+ 2020 per project],, desc ) <= 20,
            [WIP+ 2020 per project],
            BLANK ()
        )
    )
)

Y he creado una medida de muestra que puede referirse:

总体Top20 = 
VAR top20 =
    计算(
        [WIP + 2019每个项目],
        FILTER(
            'Table',
            IF(
                RANKX(ALL('Table')),[WIP + 2019每个项目],DESC)<= 20,
                [WIP + 2019每个项目],
                BLANK())
            )
        )
    )
返回
    IF(ISBLANK(top20),0,top20)

tp20.png

El siguiente archivo de ejemplo se incluye para ayudarle.

Los mejores saludos,
Equipo de Apoyo Comunitario , Yingying Li
Si este post está ahíAyuda., por favor considereAcédla como una solución,para ayudar a otros miembros a encontrarlo más rápido.

MFelix
Super User
Super User

Hola @aist ,

Sin ningún dato es difícil darle una respuesta exacta, sin embargo SQLBI lanzó un video con un uso TOPN para el que se puede ajustar a su cálculo.

Si tiene algún problema en el ajuste de esto, por favor comparta un dato de maqueta o muestra de su archivo PBIX. Puede utilizar un onedrive, google drive, que transferimos o enlace similar para cargar sus archivos.

Si la información es confidencial, compártala a través de un mensaje privado.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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