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
Syndicate_Admin
Administrator
Administrator

Comparación de valores en una fila

Querida comunidad,

Tengo una matriz con 1 fila y 3 columnas, y un valor,
Quería comparar los valores de cada fila, si todos los valores son iguales, cambiar el color de la fila a azul, si no son lo mismo cambiarlo a gris,
¿cómo puedo manejar esto con DAX?

question.PNG

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

No @Helia9235 ,

Prueba esto:

Measure = 
VAR t1 =
    ADDCOLUMNS (
        ALLSELECTED ( 'Table' ),
        "Sum",
            CALCULATE (
                SUM ( 'Table'[Value] ),
                FILTER ( ALLSELECTED ( 'Table' ), 'Table'[Rows] = MAX ( 'Table'[Rows] ) )
            )
    )
VAR Disc_C1 =
    CALCULATE ( DISTINCTCOUNT ( 'Table'[Columns1] ), ALLSELECTED ( 'Table' ) )
VAR Disc_C2 =
    CALCULATE ( DISTINCTCOUNT ( 'Table'[Columns2] ), ALLSELECTED ( 'Table' ) )
VAR Disc_C3 =
    CALCULATE ( DISTINCTCOUNT ( 'Table'[Columns3] ), ALLSELECTED ( 'Table' ) )
VAR Disc_ =
    SWITCH (
        TRUE (),
        ISFILTERED ( 'Table'[Columns3] ) && ISFILTERED ( 'Table'[Columns2] )
            && ISFILTERED ( 'Table'[Columns1] ),
            Disc_C3 * Disc_C2 * Disc_C1,
        ISFILTERED ( 'Table'[Columns2] ) && ISFILTERED ( 'Table'[Columns1] ), Disc_C2 * Disc_C1,
        ISFILTERED ( 'Table'[Columns1] ), Disc_C1,
        ISFILTERED ( 'Table'[Columns3] )
            && NOT ( ISFILTERED ( 'Table'[Columns2] ) )
                && NOT ( ISFILTERED ( 'Table'[Columns1] ) ), Disc_C3,
        ISFILTERED ( 'Table'[Columns2] )
            && NOT ( ISFILTERED ( 'Table'[Columns3] ) )
                && NOT ( ISFILTERED ( 'Table'[Columns1] ) ), Disc_C2,
        ISFILTERED ( 'Table'[Columns1] )
            && NOT ( ISFILTERED ( 'Table'[Columns2] ) )
                && NOT ( ISFILTERED ( 'Table'[Columns3] ) ), Disc_C1
    )
VAR t2 =
    ADDCOLUMNS ( t1, "Avg", [Sum] / Disc_ )
VAR Avg_ =
    AVERAGEX ( t2, [Avg] )
RETURN
    IF ( SUM ( 'Table'[Value] ) = Avg_, 0, 1 )
Measure 2 = 
SWITCH (
    TRUE (),
    ISFILTERED ( 'Table'[Columns3] ) && ISFILTERED ( 'Table'[Columns2] )
        && ISFILTERED ( 'Table'[Columns1] ),
        MAXX (
            ALLSELECTED ( 'Table'[Columns1], 'Table'[Columns2], 'Table'[Columns3] ),
            [Measure]
        ),
    ISFILTERED ( 'Table'[Columns2] ) && ISFILTERED ( 'Table'[Columns1] ), MAXX ( ALLSELECTED ( 'Table'[Columns1], 'Table'[Columns2] ), [Measure] ),
    ISFILTERED ( 'Table'[Columns1] ), MAXX ( ALLSELECTED ( 'Table'[Columns1] ), [Measure] ),
    ISFILTERED ( 'Table'[Columns3] )
        && NOT ( ISFILTERED ( 'Table'[Columns2] ) )
            && NOT ( ISFILTERED ( 'Table'[Columns1] ) ), MAXX ( ALLSELECTED ( 'Table'[Columns3] ), [Measure] ),
    ISFILTERED ( 'Table'[Columns2] )
        && NOT ( ISFILTERED ( 'Table'[Columns3] ) )
            && NOT ( ISFILTERED ( 'Table'[Columns1] ) ), MAXX ( ALLSELECTED ( 'Table'[Columns2] ), [Measure] ),
    ISFILTERED ( 'Table'[Columns1] )
        && NOT ( ISFILTERED ( 'Table'[Columns2] ) )
            && NOT ( ISFILTERED ( 'Table'[Columns3] ) ), MAXX ( ALLSELECTED ( 'Table'[Columns1] ), [Measure] )
)

Comparing values in a row.gif

Saludos

Icey

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

frown.PNG

@Icey Gracias por tu ayuda. Recibí este error, ¿es normal? ¿Tienes idea?

No @Helia9235 ,

Al igual que el error mencionado, no hay suficiente memoria para completar esta operación. Por favor, intente:

1. detener otras aplicaciones y servicios irrelevantes

2. Modifique las medidas de la siguiente manera:

Measure_1 = 
VAR t1 =
    SUMMARIZE (
        'Table',
        'Table'[Rows],
        'Table'[Columns1],
        'Table'[Columns2],
        'Table'[Columns3],
        'Table'[Value],
        "Sum",
            CALCULATE (
                SUM ( 'Table'[Value] ),
                FILTER ( ALL ( 'Table' ), 'Table'[Rows] = MAX ( 'Table'[Rows] ) )
            )
    )
VAR Disc_C1 =
    CALCULATE ( DISTINCTCOUNT ( 'Table'[Columns1] ), ALLSELECTED ( 'Table' ) )
VAR Disc_C2 =
    CALCULATE ( DISTINCTCOUNT ( 'Table'[Columns2] ), ALLSELECTED ( 'Table' ) )
VAR Disc_C3 =
    CALCULATE ( DISTINCTCOUNT ( 'Table'[Columns3] ), ALLSELECTED ( 'Table' ) )
VAR Disc_ =
    SWITCH (
        TRUE (),
        ISFILTERED ( 'Table'[Columns3] ) && ISFILTERED ( 'Table'[Columns2] )
            && ISFILTERED ( 'Table'[Columns1] ),
            Disc_C3 * Disc_C2 * Disc_C1,
        ISFILTERED ( 'Table'[Columns2] ) && ISFILTERED ( 'Table'[Columns1] ), Disc_C2 * Disc_C1,
        ISFILTERED ( 'Table'[Columns1] ), Disc_C1,
        ISFILTERED ( 'Table'[Columns3] )
            && NOT ( ISFILTERED ( 'Table'[Columns2] ) )
                && NOT ( ISFILTERED ( 'Table'[Columns1] ) ), Disc_C3,
        ISFILTERED ( 'Table'[Columns2] )
            && NOT ( ISFILTERED ( 'Table'[Columns3] ) )
                && NOT ( ISFILTERED ( 'Table'[Columns1] ) ), Disc_C2
    )
VAR t2 =
    ADDCOLUMNS ( t1, "Avg", [Sum] / Disc_ )
VAR Avg_ =
    AVERAGEX ( t2, [Avg] )
RETURN
    IF ( SUM ( 'Table'[Value] ) = Avg_, 0, 1 )
Measure_2 = 
SWITCH (
    TRUE (),
    ISFILTERED ( 'Table'[Columns3] ) && ISFILTERED ( 'Table'[Columns2] )
        && ISFILTERED ( 'Table'[Columns1] ),
        MAXX (
            ALLSELECTED ( 'Table'[Columns1], 'Table'[Columns2], 'Table'[Columns3] ),
            [Measure_1]
        ),
    ISFILTERED ( 'Table'[Columns2] ) && ISFILTERED ( 'Table'[Columns1] ), MAXX ( ALLSELECTED ( 'Table'[Columns1], 'Table'[Columns2] ), [Measure_1] ),
    ISFILTERED ( 'Table'[Columns1] ), MAXX ( ALLSELECTED ( 'Table'[Columns1] ), [Measure_1] ),
    ISFILTERED ( 'Table'[Columns3] )
        && NOT ( ISFILTERED ( 'Table'[Columns2] ) )
            && NOT ( ISFILTERED ( 'Table'[Columns1] ) ), MAXX ( ALLSELECTED ( 'Table'[Columns3] ), [Measure_1] ),
    ISFILTERED ( 'Table'[Columns2] )
        && NOT ( ISFILTERED ( 'Table'[Columns3] ) )
            && NOT ( ISFILTERED ( 'Table'[Columns1] ) ), MAXX ( ALLSELECTED ( 'Table'[Columns2] ), [Measure_1] )
)

3. Inténtelo de nuevo.

Saludos

Icey

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

@Helia9235, no hay nada como una operación de nivel de fila en power bi. Así que tienes que hacerlo usando una fórmula y medida de color

¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla? O una muestra de pbix después de eliminar datos confidenciales.

Para la medida de color

https://radacad.com/dax-and-conditional-formatting-better-together-find-the-biggest-and-smallest-num...
https://docs.microsoft.com/en-us/power-bi/desktop-conditional-table-formatting#color-by-color-values

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.