Remon Kissen
Hola,
Soy un principiante con Power BI y tengo una pregunta. Los datos en mi ejemplo son ficticios.
En nuestra empresa hacemos cada 2 semanas un cálculo de precio de costo. Este cálculo del precio de coste es la base para el cálculo de los precios de venta. En general, los precios de venta y los precios de costo se fijan por un período de 2 semanas. Pero si una receta cambia, podría ser posible recibir un nuevo cálculo de costos, dentro del período de 2 semanas. El precio de costo está activo hasta la próxima fecha de activación de ese número de artículo.
Necesito hacer coincidir el precio de costo del producto con la fecha de entrega de la tabla de transacciones.
Este ejemplo se parece mucho a esta publicación de blog:
https://community.powerbi.com/t5/Desktop/Lookup-Price-within-Date-Range-by-delivered-Date/mp/112365…
La única diferencia es que no tengo [To Date]. ¿Es necesario crear en el Editor de consultas una columna? [From Date] y [To Date]? Si es así, cómo tengo que hacerlo.
Muchísimas gracias,
Remón
Precio de Costo de Tabla
Número de artículo | Precio de coste | Fecha de activacion |
1000 |
31,98 |
18-2-2020 |
1000 |
32,17 |
2-3-2020 |
1000 |
31,16 |
9-3-2020 |
1000 |
34,00 |
11-3-2020 |
2000 |
31,98 |
18-2-2020 |
2000 |
32,25 |
9-3-2020 |
2000 |
32,50 |
11-3-2020 |
3000 |
31,11 |
18-2-2020 |
3000 |
31,15 |
2-3-2020 |
3000 |
31,25 |
9-3-2020 |
Tabla de hechos Transacciones de ventas
Fecha de entrega | Número de artículo | Cantidad de ventas |
18-02-2020 |
1000 |
10 |
19-02-2020 |
1000 |
10 |
20-02-2020 |
1000 |
10 |
09-03-2020 |
1000 |
10 |
10-03-2020 |
1000 |
10 |
18-02-2020 |
2000 |
10 |
19-02-2020 |
2000 |
10 |
11-03-2020 |
3000 |
10 |
12-03-2020 |
3000 |
10 |
13-03-2020 |
3000 |
10 |
vivran22
En respuesta a Remon Kissen
@RemonKissen
Puedes intentar esto:
Agregue una columna de índice en la publicación de la tabla de precios de costo ordenándola por número de artículo y fecha de activación
Agregar dos columnas calculadas
Para hasta la fecha:
Till Date =
VAR _TillDate =
LOOKUPVALUE(dtCostPrice[Activation date],dtCostPrice[Item Number],dtCostPrice[Item Number],dtCostPrice[Index],dtCostPrice[Index] + 1)
VAR _Result =
IF(ISBLANK(_TillDate),TODAY(),_TillDate)
RETURN
_Result
Por precio de costo:
Cost Price =
CALCULATE(
MAX(dtCostPrice[Cost Price]),
FILTER(
dtCostPrice,
dtCostPrice[Activation date] <= dtSales[Delivery Date]
&& dtCostPrice[Till Date] >= dtSales[Delivery Date]
&& dtCostPrice[Item Number] = dtSales[Item Number]
)
)
¡Salud!
Vivek
si te sirve márcalo como solución
Felicitaciones sería una cereza en la parte superior 🙂 (¡Presiona el botón de pulgares arriba!)
Si no es así, comparta datos de muestra junto con los resultados esperados (preferiblemente un archivo de Excel y no una imagen)
https://www.vivran.in/
Conectar en LinkedIn
vivran22
Hola @RemonKissen,
También puede lograr esto usando Power Query.
He usado Merge Queries: primero para obtener la última fecha de cada artículo y luego para obtener el costo de la última fecha
Resultado:
Puede encontrar el archivo pbix de muestra aquí
¡Salud!
Vivek
si te sirve márcalo como solución
Felicitaciones sería una cereza en la parte superior 🙂 (¡Presiona el botón de pulgares arriba!)
Si no es así, comparta datos de muestra junto con los resultados esperados (preferiblemente un archivo de Excel y no una imagen)
https://www.vivran.in/
Conectar en LinkedIn
Remon Kissen
En respuesta a vivran22
Hola @vivran22 Vivek,
Gracias por tu rápida respuesta. Está cerca de la solución que estoy buscando. ¿Podría leer la explicación adicional que le di a @dax Zoe Zhi? Esto incluye el resultado requerido/deseado.
¡Salud!
Remón
vivran22
En respuesta a Remon Kissen
@RemonKissen
Puedes intentar esto:
Agregue una columna de índice en la publicación de la tabla de precios de costo ordenándola por número de artículo y fecha de activación
Agregar dos columnas calculadas
Para hasta la fecha:
Till Date =
VAR _TillDate =
LOOKUPVALUE(dtCostPrice[Activation date],dtCostPrice[Item Number],dtCostPrice[Item Number],dtCostPrice[Index],dtCostPrice[Index] + 1)
VAR _Result =
IF(ISBLANK(_TillDate),TODAY(),_TillDate)
RETURN
_Result
Por precio de costo:
Cost Price =
CALCULATE(
MAX(dtCostPrice[Cost Price]),
FILTER(
dtCostPrice,
dtCostPrice[Activation date] <= dtSales[Delivery Date]
&& dtCostPrice[Till Date] >= dtSales[Delivery Date]
&& dtCostPrice[Item Number] = dtSales[Item Number]
)
)
¡Salud!
Vivek
si te sirve márcalo como solución
Felicitaciones sería una cereza en la parte superior 🙂 (¡Presiona el botón de pulgares arriba!)
Si no es así, comparta datos de muestra junto con los resultados esperados (preferiblemente un archivo de Excel y no una imagen)
https://www.vivran.in/
Conectar en LinkedIn
dax
Hola @RemonKissen,
Qué [from date] y [To date] ¿querías? Si es posible, ¿podría explicarlo en detalle? Por cierto, si es posible, ¿podría proporcionarme información más detallada (como el resultado esperado)?
Atentamente,
zoe zhi
Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Remon Kissen
En respuesta a dax
Hola @dax Zoe Zhi,
Gracias por tu pronta respuesta. Espero aclarar mi ejemplo, mi ejemplo espero que:
Número de artículo 1000, costo 31,98, fecha de activación 18-02-2020 está activo hasta la próxima actualización. En mi ejemplo, esto debería estar activo hasta el 01-03-2020. El 03-02-2020 está activo un nuevo precio de costo para el número de artículo 1000. Agregué una columna adicional, hasta la fecha en que el precio está activo. ¿Tengo que añadir una columna adicional? Si es así, ¿cómo tengo que hacerlo con el Editor de consultas?
Si se produjo una entrega de venta para el artículo número 1000, por ejemplo, en la fecha 19-02-2020, el precio de costo debería estar visible en la tabla de hechos «Nueva columna».
Gracias,
Remón
Precio de Costo de Tabla
Era la fecha de activación | Nueva columna agregada | ||
Número de artículo | Precio de coste | Partir de la fecha | Hasta la fecha |
1000 | 31,98 | 18-2-2020 | 1-3-2020 |
1000 | 32,17 | 2-3-2020 | 8-3-2020 |
1000 | 31,16 | 9-3-2020 | 10-3-2020 |
1000 | 34,00 | 11-3-2020 | Hasta la próxima actualización… |
2000 | 31,98 | 18-2-2020 | 8-3-2020 |
2000 | 32,25 | 9-3-2020 | 10-3-2020 |
2000 | 32,50 | 11-3-2020 | Hasta la próxima actualización… |
3000 | 31,11 | 18-2-2020 | 1-3-2020 |
3000 | 31,15 | 2-3-2020 | 8-3-2020 |
3000 | 31,25 | 9-3-2020 | Hasta la próxima actualización… |
Tabla de hechos Transacciones de ventas
Nueva columna | |||
Fecha de entrega | Número de artículo | Cantidad de ventas | Precio de coste |
18-02-2020 | 1000 | 10 | 31,98 |
19-02-2020 | 1000 | 10 | 31,98 |
20-02-2020 | 1000 | 10 | 31,98 |
09-03-2020 | 1000 | 10 | 31,16 |
10-03-2020 | 1000 | 10 | 31,16 |
18-02-2020 | 2000 | 10 | 31,98 |
19-02-2020 | 2000 | 10 | 31,98 |
11-03-2020 | 3000 | 10 | 31,25 |
12-03-2020 | 3000 | 10 | 31,25 |
13-03-2020 | 3000 | 10 | 31,25 |