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

Cálculo de valores del período anterior según criterios

¡Saludo!
Tengo un problema que no puedo resolver.
Estoy tratando de obtener el valor del período anterior (fecha) de acuerdo con los criterios.

Para cada artículo del contrato, quiero calcular el precio del período anterior de acuerdo con los criterios (país, producto)

¡Gracias de antemano!

Es fácil para ti, ¡así que por favor ayuda!

png.png

1 ACCEPTED SOLUTION

@mraka9 ,

He hecho algunas optimizaciones, el siguiente código y reslut:

calculation =
VAR _ft =
    FILTER(
        'Table',
        [contract] = 1
            && [date] < EARLIER( 'Table'[date] )
            && [state] = EARLIER( 'Table'[state] )
            && [product] = EARLIER( 'Table'[product] )
    )
VAR _st =
    TOPN( 1, _ft, [date], DESC )
RETURN
    IF( [contract] = 1, MAXX( _st, [price] ), BLANK() )

vchenwuzmsft_0-1639470179207.png

En realidad, es correcto que él haga eso. No puede simplemente maximizar los datos -1, digamos 17.9.2021 - 1 es 16.9.2021, pero no hay 16.9.2021 en la tabla, por lo que dax no puede encontrar esa condición. La forma de obtener los datos más cercanos suele ser utilizar el método de clasificación para obtenerlos.

Pbix al final.

Saludos

Equipo de apoyo a la comunidad _ chenwu zhu

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

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@mraka9

He creado 2 columnas calculadas para devolver el valor:

Un rango de clasificación:

Sorting Rank = if(Sheet1[Contract]=BLANK(), BLANK(),
    RANKX (
        FILTER (
            ALL ( Sheet1 ),
            Sheet1[State] = EARLIer(Sheet1[State]) 
                && Sheet1[Product] = EARLIer(Sheet1[Product])
        ),
        Sheet1[Date],
        ,
        ASC,
        DENSE
    ))

y una columna que calculará el precio:

Previous Quantity2 = 
VAR _Result =
    CALCULATE (
        MAX ( Sheet1[Price] ),
        FILTER (
            Sheet1,
                 Sheet1[State] = EARLIER ( Sheet1[State] )
                && Sheet1[Product] = EARLIER ( Sheet1[Product] )
                && Sheet1[Sorting Rank] = 1
        )
    )
RETURN
    IF(Sheet1[Sorting Rank]>1, _Result)

Vea también el área de trabajo de PowerBI adjunta

¡Muchas gracias!
Me parece bien, pero no estoy seguro de si expliqué bien el problema.

La fórmula Dax debe encontrarse para cada contrato que era el precio anterior en el contrato teniendo en cuenta el país y el producto.
No estoy seguro de por qué se necesitaría rango.

Por lo que entiendo, lo más simple es entonces la fórmula max date -1 y luego poner los criterios, pero no lo hago.

@mraka9 ,

He hecho algunas optimizaciones, el siguiente código y reslut:

calculation =
VAR _ft =
    FILTER(
        'Table',
        [contract] = 1
            && [date] < EARLIER( 'Table'[date] )
            && [state] = EARLIER( 'Table'[state] )
            && [product] = EARLIER( 'Table'[product] )
    )
VAR _st =
    TOPN( 1, _ft, [date], DESC )
RETURN
    IF( [contract] = 1, MAXX( _st, [price] ), BLANK() )

vchenwuzmsft_0-1639470179207.png

En realidad, es correcto que él haga eso. No puede simplemente maximizar los datos -1, digamos 17.9.2021 - 1 es 16.9.2021, pero no hay 16.9.2021 en la tabla, por lo que dax no puede encontrar esa condición. La forma de obtener los datos más cercanos suele ser utilizar el método de clasificación para obtenerlos.

Pbix al final.

Saludos

Equipo de apoyo a la comunidad _ chenwu zhu

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

Hola

Necesito ayuda después de la consulta anterior.

¿Es posible en su lugar: && [producto] = ANTES ('Tabla' [producto])

para buscar un producto basado en la Tabla2, con el enlace a la tabla siendo contrato-grupo-artículo?

Por ejemplo, quiero saber cuál fue el precio en el último contrato para Motorcycle1, contrato 109, grupo 2, artículo 8, pero para buscar en función del producto detrás de Table2, donde se buscan tanto Motorcycle2 como Motorcycle3.

Espero haber podido explicarlo.

Bez naslova.png

Thanks a lot for the explanation and helpful information!
Greetings

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.