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

Reemplaza los valores de las mismas columnas en condiciones de la misma columna y de otras

Hola

¿Puede alguien ayudarme con el DAX para abajo? TIA.

Formato actual

kumsha1_0-1652241940919.png

Formato requerido

Si Att=Horas de ejecución y Valores=0 entonces (Valores=0 donde Att=Rendimiento)

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

¿ @kumsha1

¿Cuál es el resultado que espera ver en el cálculo?

Gracias
Seguir

¿ @TheoC

Si Att=Horas de ejecución y Valores=0, entonces quiero que los valores de rendimiento sean 0 como se muestra a continuación

EseValores
Horas de funcionamiento0
Rendimiento0.00

Podría haber otros Att en la tabla, así que solo quiero hacer que los valores sean 0 donde Att = Rendimiento

¿ @kumsha1

Puede usar una columna calculada como esta:

_Value = 

DÓNDE _1 = "Horas de funcionamiento"
DÓNDE _2 = "Rendimiento"
DÓNDE _3 = INTERRUPTOR ( VERDADERO () , «Tabla»[att] = _1 && «Tabla»[Valores] = 0 , «Tabla»[Valores] )
DÓNDE _4 = INTERRUPTOR ( VERDADERO () , _3 = 0 && «Tabla»[att] = _2 , 0 , «Tabla»[Valores] )

DEVOLUCIÓN

_4

La salida es como la siguiente:

TheoC_0-1652245443873.png

PBIX también se adjunta para obtener más ayuda 🙂

En el ejemplo anterior, he eliminado algunos otros elementos "Att" solo para mostrarle que la columna calculada solo recoge las horas de ejecución que son 0 y luego crea el rendimiento para que también sea 0, según sea necesario.

¡Todo lo mejor!

Seguir

Hola @TheoC , esto parece estar funcionando para distintos valores individuales de Att, pero no para valores duplicados como se menciona a continuación. TIA

kumsha1_0-1652254887500.png

@kumsha1 puede proporcionar todos los datos en el estado exacto en el que se encuentra con los que está trabajando? Parece como si faltaran datos y cada intento de proporcionar una solución trae nueva información. Para asegurarnos de que @RicoZhou y yo podemos ayudarle, ¿puede proporcionar datos de ejemplo que coincidan con los datos exactos del archivo de Power BI? @RicoZhou ha proporcionado algunas soluciones realmente excelentes y estoy un poco sorprendido de que no funcionen para usted, de ahí la necesidad de ver los datos de muestra o, alternativamente, obtener una copia de su archivo PBIX.

Gracias de antemano por su comprensión.

Seguir

@kumsha1 ,

Creo que el código de TheoC permitirá que todo el valor de "Rendimiento" devuelva 0 si hay un valor de "Horas de ejecución" igual a 0. Así que obtendrá el resultado como la captura de pantalla anterior. De acuerdo con su captura de pantalla, sé que debería haber el mismo número de "Rendimiento" y "Horas de ejecución". ¿Existe una correspondencia uno a uno entre ellos? Por lo tanto, desea que uno de "Rendimiento" devuelva 0 y otros tres devuelvan los valores originales. Si son uno a uno, entonces debería haber una columna como [Índice] para determinar esto.

La tabla debe verse como se muestra a continuación.

RicoZhou_0-1652422793883.png

Si no hay una columna como [Índice] en la tabla, puede agregarla usted mismo en el Editor de Power Query.

Para referencia:

Crear número de fila para cada grupo en Power BI mediante Power Query

Pruebe este código.

New Value =
VAR _Value_Att =
    CALCULATE (
        SUM ( 'Table'[Values] ),
        FILTER (
            'Table',
            'Table'[Index] = EARLIER ( 'Table'[Index] )
                && 'Table'[Attribute] = "Running Hours"
        )
    )
RETURN
    SWITCH (
        'Table'[Attribute],
        "Throughput", IF ( _Value_Att = 0, 0, 'Table'[Values] ),
        'Table'[Values]
    )

El resultado es el siguiente.

RicoZhou_1-1652423546178.png

Saludos
Rico Zhou

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Hola @RicoZhou , gracias por su respuesta.

A continuación se muestran mis datos. Los atributos se pueden mostrar juntos o individualmente en diferentes tablas y también tienen filtros de nivel de tabla aplicados. En cualquier caso, quiero mostrar el valor de Througput como 0 cuando el Atributo = Horas de ejecución y Valores = 0. No estoy muy seguro de si ReportElement se puede usar para hacer una relación 1-1. TIA

kumsha1_0-1652841941867.png

@kumsha1 ,

Creo que puedes probar este código para crear una medida para lograr tu objetivo.

New Value = 
VAR _Value =
    CALCULATE ( SUM ( 'Table'[Values] ) )
VAR _Value_Att =
    CALCULATE (
        SUM ( 'Table'[Values] ),
        FILTER (
            ALLEXCEPT ( 'Table', 'Table'[ReportElement] ),
            'Table'[Attribute] = "Running Hours"
        )
    )
RETURN
    SWITCH (
        MAX ( 'Table'[Attribute] ),
        "Throughput", IF ( _Value_Att = 0, 0, _Value ),
        _Value
    )

El resultado es el siguiente.

RicoZhou_0-1652858548521.png

Saludos
Rico Zhou

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Gracias de nuevo @RicoZhou , la solución anterior no funciona para mí y creo que funciona solo si tenemos dos atributos ya que MAX se usó en la declaración RETURN, podría haber muchos otros atributos con diferentes filtros de tabla. Realmente necesito una solución que funcione en cualquier escenario. También estoy intentando si podemos hacer esto por otra tabla duplicada, pero no estoy seguro de si funciona, si se encuentra con alguna otra solución, por favor, hágamelo saber aquí. Bien

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.