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
bpn1973
Resolver II
Resolver II

Devolver el precio aplicable dentro del plazo

¡Hola!

Todavía estoy haciendo mi camino alrededor de BI y algunas cosas simples me hacen tropezar.

Así que tengo una lista de precios con diferentes tipos de precios. La columna Fecha de las listas de precios establece el período de tiempo dentro del cual los precios son aplicables a determinadas SKU.

Y tengo una mesa de ventas. Necesito calcular el precio de lista de precios aplicable en la fecha de venta y el promedio dentro del mes (pero eso es secundario) y calcular la diferencia entre él y un precio de venta real.

Los tipos de precios aplicables tienen que ser cortados por la segmentación, es decir, el usuario debe ser capaz de elegir diferentes tipos de precios.

La segmentación de fechas debe segmentar solo las fechas de venta, ya que algunos de los precios de lista de precios se pueden establecer bien fuera de un período de tiempo en rodajas.

El tamaño de la lista de precios es de 1++ mil filas
ID de SKU: 25 000+ filas
Clientes 16 000 + filas

Ventas: 2+ mil filas

Intenté esta medida, pero no se puede calcular. Rueda de progreso gira y eso es todo 😞

LISTA DE PRECIOS REF ?
var SalesDate ?
SELECTEDVALUE(DATA_SALES[FECHA DE VENTA])
var PriceValue ?
CALCULATE(AVERAGEX(PRICE_LIST,[PRICE]),ALL(DATES),
FILTER(DATES,DATES[DATES]>-SalesDate && DATES[DATES]<SalesDate))
devolución
PriceValue
¡Agradezco cualquier ayuda!!! ¡Thx!
¡Cualquier idea es bienvenida! Gracias
2 ACCEPTED SOLUTIONS
v-deddai1-msft
Community Support
Community Support

Hola @bpn1973 ,

Por favor, pruebe la siguiente medida, si no funciona, por favor explique más acerca de su salida esperada.

PRICE LIST REF = 
var PriceValue = CALCULATE(AVERAGE(PRICE_LIST[PRICE]),FILTER(ALL(DATES),DATES[DATES] in VALUES(DATA_SALES[SALES DATE])))
return
PriceValue

Capture5.PNG

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

Saludos

Dedmon Dai

View solution in original post

bpn1973
Resolver II
Resolver II

Lo rompí. Resultó ser mucho más simple de lo que pensaba

bpn1973_0-1606349688555.png

PRICE LIST REFERENCE =
var mindate = MIN(DATES[DATE])
var priceref= CALCULATE(LASTNONBLANK(PRICES[PRICE],[PRICE]),FILTER(ALL(DATES[DATE]),DATES[DATE]<=mindate))

return
priceref

View solution in original post

5 REPLIES 5
bpn1973
Resolver II
Resolver II

Lo rompí. Resultó ser mucho más simple de lo que pensaba

bpn1973_0-1606349688555.png

PRICE LIST REFERENCE =
var mindate = MIN(DATES[DATE])
var priceref= CALCULATE(LASTNONBLANK(PRICES[PRICE],[PRICE]),FILTER(ALL(DATES[DATE]),DATES[DATE]<=mindate))

return
priceref

bpn1973
Resolver II
Resolver II

Desafortunadamente, la solución no está llena. Supongo que fue mi culpa. Malinterpretaba la tarea en sí.

Así que el problema es que los precios en la lista de precios se pueden establecer (y usaully son) en o antes de las fechas de venta. Y la solución solo funciona para los precios que se establecieron en el intervalo de fechas seleccionado. Si los precios se fijaron antes del intervalo de fechas, se devuelve el espacio en blanco 😞

Supongo que la lógica correcta sería comprobar si había precios para los artículos vendidos establecidos en la lista de precios en o antes de la fecha mínima de la segmentación del intervalo de fechas y la fecha de devolución y el rango de precios a partir de la primera fecha en que el precio se estableció hasta la fecha máxima del intervalo de fechas. Espero tener esa clara.

La solución actual devuelve los precios solo dentro del rango establecido, ignorando los que se establecieron antes, lo que da como resultado celdas vacías.

bpn1973_0-1606347635508.png

Supongo que esa parte

en VALUES(DATA_SALES[o])

debe modificarse para comenzar con la primera fecha de la lista de precios menor o igual a la primera fecha de venta.

Francamente estoy luchando con ese problema, pero no puedo mover la cabeza alrededor de él. Las fechas no son coincidentes en la lista de precios y la creación de una tabla virtual daría como resultado una décima parte de millones de filas

v-deddai1-msft
Community Support
Community Support

Hola @bpn1973 ,

Por favor, pruebe la siguiente medida, si no funciona, por favor explique más acerca de su salida esperada.

PRICE LIST REF = 
var PriceValue = CALCULATE(AVERAGE(PRICE_LIST[PRICE]),FILTER(ALL(DATES),DATES[DATES] in VALUES(DATA_SALES[SALES DATE])))
return
PriceValue

Capture5.PNG

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

Saludos

Dedmon Dai

¡Muchas gracias!

Todavía probando, pero se pone a trabajar como un encanto con una pequeña alteración del uso de AVERAGEX en lugar de un PROMEDIO.

bpn1973
Resolver II
Resolver II

¿Aún no tienes ideas?

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.