cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Ordenar columna con formato condicional

Hola

Tengo la siguiente tabla con un formato condicional en la columna "Diferencia".

Número de semanaAcciónVendidoDiferencia
11218932
221220012
314210537
48468451
555250052
623131200
751451463
8874551323
954884464
101525498
11516156360
126146140

Icon flag = 
VAR _Threshold =
    DIVIDE ( SUM ( 'Product'[Sold] ), SUM ( 'Product'[Stock] ) )
RETURN
    SWITCH ( TRUE (), 
_Threshold < 0.5, 1, 
_Threshold < 0.9, 2, 
3 )

MakeItReal_1-1660225656274.png

Aquí está la visualización de la tabla , pero estoy tratando de ordenar por color, de rojo (3) a amarillo (2) a verde (1). ¿Es eso posible? Cualquier ayuda es muy apreciada.

MakeItReal_0-1660225602144.png

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

@mattkocak ¡Gracias por su respuesta! La "Columna de diferencia" es en realidad una medida y cuando la selecciono en el menú Campos, no hay "Herramientas de columna".

Diferencia = Stock - Vendido

Ahh ya veo, en ese caso siento que tienes dos opciones.

1. Utilice columnas calculadas en lugar de medidas

2. Agregue la medida 'Indicador de icono' directamente a la columna y ordene la tabla en función de esto. Podría cambiar su nombre en el visual a 'Estado' o algo similar que lo haría parecer un poco más significativo.

Hágame saber si estas soluciones parecen adecuadas o si necesita más ayuda.

@mattkocak Para simplificar el problema, he eliminado las columnas calculadas y he dejado solo la tabla y las columnas esenciales. Pero sigo enfrentando el mismo problema: estoy tratando de ordenar todos los iconos en la columna "Diferencia", de rojo a naranja a verde, en ese orden mientras mantengo el número de "ID de documento" en orden ascendente para colores de bandera de iconos similares. ¿Es esto posible?

MakeItReal_0-1660238548286.png

He subido mi archivo PBIX: https://drive.google.com/file/d/12ZQ3pH39k5f3YYceEb0rPviByJRGXRBO/view?usp=sharing

Gracias por la información adicional, que despeja un poco el objetivo. Así que tendrás que crear dos columnas calculadas para esto. Uno solo se usa como un paso intermedio (RankRaw), el otro es para mostrar / ordenar el rango real en la tabla (Rank).

A continuación se muestra el DAX para las columnas calculadas que había creado. Tenga en cuenta que las reglas de visualización en el pbix que proporcionó (rojo, amarillo, verde) eran opuestas a su publicación original. Corregí esto en mis cálculos.

RankRaw = 
VAR documentId = 'Data Table'[Document ID]

VAR _Threshold = 
    DIVIDE(
        CALCULATE(
            SUM('Data Table'[Difference]),
            ALL('Data Table'),
            'Data Table'[Document ID] = documentId
        ),
        CALCULATE(
            SUM('Data Table'[Stock amount]),
            ALL('Data Table'),
            'Data Table'[Document ID] = documentId
        )
    )

VAR statusAdjustment =
    SWITCH(
        TRUE(),
         _Threshold < 0.5, 0,
         _Threshold < 0.9, 1000000,
        10000000
    )

RETURN (1000000 - documentId) + statusAdjustment

Rank = 
    RANKX(
        'Data Table',
        'Data Table'[RankRaw],
        ,
        ,
        Dense
    )

Resultado:

mattkocak_0-1660245075803.png

Los ajustes en el DAX se pueden realizar en función de las reglas que desee utilizar para clasificar las filas. Hágame saber si esto logra lo que espera o si puedo ayudar de otra manera.

@mattkocak Gracias por su ayuda. Agregué las dos columnas calculadas, pero parece que la columna Rango no era necesaria. Ordené por RankRaw y funcionó, pero si agrego la columna Rank, la última fila contiene 8 cuando debería ser 1?

MakeItReal_0-1660246188566.png

Si ordeno por rango, entonces no es correcto ya que algunos de los amarillos se agrupan con los rojos.

MakeItReal_1-1660246322084.png

Entonces, he eliminado la columna Rank, pero ¿es posible ocultar la columna RankRaw de la tabla?

MakeItReal_2-1660246374212.png

Intente reemplazar el DAX para RankRaw con el siguiente código:

RankRaw = 
VAR documentId = 'Data Table'[Document ID]

VAR _Threshold = 
    DIVIDE(
        CALCULATE(
            SUM('Data Table'[Difference]),
            ALL('Data Table'),
            'Data Table'[Document ID] = documentId
        ),
        CALCULATE(
            SUM('Data Table'[Stock amount]),
            ALL('Data Table'),
            'Data Table'[Document ID] = documentId
        )
    )

VAR statusAdjustment =
    SWITCH(
        TRUE(),
         _Threshold < 0.5, 10000000,
         _Threshold < 0.9, 1000000,
        0
    )

RETURN documentId + statusAdjustment

Sí, deberá mostrar la columna Rango si desea ordenar en función de ella.

Syndicate_Admin
Administrator
Administrator

Puede seleccionar la columna 'Diferencia' en el menú de campos, luego en la pestaña 'Herramientas de columna', elija ordenar por la columna 'Bandera de icono'. Ahora, cuando ordene su tabla en función de la columna 'Diferencia', en realidad se ordenará en función de la columna 'Bandera de icono'.

mattkocak_0-1660227041350.png

Hágame saber si puedo ayudar a responder más preguntas. Si la publicación fue útil, ¡me ayuda si le das un pulgar hacia arriba y la marcas como una solución!

Mejor

Mate

Helpful resources

Announcements
Carousel_PBI_Wave1

2023 Release Wave 1 Plans

Power BI release plans for 2023 release wave 1 describes all new features releasing from April 2023 through September 2023.

Power BI Summit Carousel 2

Global Power BI Training

Make sure you register today for the Power BI Summit 2023. Don't miss all of the great sessions and speakers!

BizApps LATAM 2023

Business Application LATAM Summit 2023

Join the biggest FREE Business Applications Event in LATAM this February.

Power Platform Bootcamp

Global Power Platform Bootcamp

In this bootcamp we will deep-dive into Microsoft’s Power Platform stack with hands-on sessions and labs, delivered to you by experts and community leaders.