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.
¡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!
Solved! Go to 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() )
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.
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() )
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.
Thanks a lot for the explanation and helpful information!
Greetings
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |