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.
Hola a todos,
Tengo un problema complejo que i han estado luchando con para encontrar una solución, de modo que espero que alguien aquí puede ayudarme con este.
Tengo una tabla de fechas y 2 tablas de hechos, una con ventas y otra con inventario.
Tenemos varias tiendas y cada tienda obtiene una entrada por día en la tabla de inventario para cada producto que tienen en stock, si no tienen un producto en stock no hay entrada para eso, por lo que no hay entrada "0 stock".
Del mismo modo, la tabla de ventas sólo obtiene transacciones en ella, por lo que no hay "0 entradas de ventas" allí tampoco, sólo faltan filas para el producto si no se vendió ese día.
Lo que me gustaría hacer es
1: comprobar cuando una tienda tiene una entrada faltante para un producto en ambas mesas, para confirmar un stock out ese día
2: estimar las ventas faltantes debido a ese stock out en función de las ventas antes y después de que se produjera el stockout.
Muestra de la tabla de ventas:
sale_date | product_id | Cantidad | store_id |
2019-01-01 | 1 | 10 | 1 |
2019-01-01 | 1 | 11 | 2 |
2019-01-01 | 1 | 10 | 3 |
2019-01-01 | 2 | 7 | 1 |
2019-01-01 | 2 | 13 | 2 |
2019-01-01 | 3 | 11 | 2 |
2019-01-01 | 3 | 10 | 3 |
2019-01-02 | 1 | 1 | 1 |
2019-01-02 | 1 | 2 | 2 |
2019-01-02 | 1 | 8 | 3 |
2019-01-02 | 2 | 10 | 1 |
2019-01-02 | 2 | 11 | 2 |
2019-01-02 | 3 | 8 | 2 |
Muestra de la tabla de inventario:
Fecha | product_id | Cantidad | store_id |
2019-01-01 | 1 | 30 | 1 |
2019-01-01 | 1 | 20 | 2 |
2019-01-01 | 1 | 35 | 3 |
2019-01-01 | 2 | 20 | 1 |
2019-01-01 | 2 | 25 | 2 |
2019-01-01 | 3 | 22 | 1 |
2019-01-01 | 3 | 23 | 2 |
2019-01-01 | 3 | 22 | 3 |
2019-01-02 | 1 | 20 | 1 |
2019-01-02 | 1 | 9 | 2 |
2019-01-02 | 1 | 25 | 3 |
2019-01-02 | 2 | 13 | 1 |
2019-01-02 | 2 | 12 | 2 |
2019-01-02 | 3 | 12 | 2 |
Por lo tanto, los siguientes productos y fechas deben estar marcados como stockout, podrían ser una medida, una columna o una tabla:
Fecha | product_id | store_id | Stockout |
2019-01-01 | 2 | 3 | Verdad |
2019-01-02 | 2 | 3 | Verdad |
2019-01-02 | 3 | 1 | Verdad |
2019-01-02 | 3 | 3 | Verdad |
¿Es esto posible lograr?
Hola @Trolleri ,
Tal vez usted puede tratar de hacer así:
Number_store =
CALCULATE(
DISTINCTCOUNT(Inventory[store_id]),
ALLEXCEPT(
Inventory,
Inventory[date], Inventory[product_id]
)
)
Sum_store =
CALCULATE(
SUM(Inventory[store_id]),
ALLEXCEPT(
Inventory,
Inventory[date], Inventory[product_id]
)
)
Store_id(measure) =
VAR x =
CALCULATE(
MAX(Inventory[store_id]),
ALL(Inventory)
)
RETURN
SWITCH(
[Number_store],
x, BLANK(),
x-1, 6-[Sum_store],
x-2, 6-[Sum_store]
)
Stockout =
IF(
[Store_id(measure)] <> BLANK(),
"True",
BLANK()
)
Saludos
Lionel Chen
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @Trolleri
Claro, consulte la solución adjunta con la siguiente medida que más tarde se utiliza para filtrar la tabla
check =
VAR __date = MAX( 'calendar'[Date] ) <= CALCULATE( MAX( sales[sale_date] ), ALL( sales ) )
RETURN
INT( ISEMPTY( sales ) && ISEMPTY( inventory ) && __date )
Hola @Mariusz ,
La fórmula funciona, pero siempre devuelve 0.
¿No estoy seguro de lo que se supone que debe devolver?
Hola @Mariusz ,
Ahora descubrí por qué no funcionó para mí, tenías un +0 en tus sumas así que ahora se muestra correctamente para mí en ese tipo de visual, gracias.
Pero si quiero contar las filas donde el filtro es 1, ¿cómo lo hago?
Quiero averiguar cuántos días en % que tenían existencias para cada producto, he intentado contar filas con ese filtro, pero no devuelve nada si configuro el filtro en 1.
@Trolleri , si la solución de @Mariusz no funciona, la marca de los dos. Lo comprobaremos de nuevo.
En 2019-01-01, ¿cómo sabemos que se pierde la venta, cuando estos no hay registro en ventas. Debido a que no hay un registro de inventario para ese día ??
Algo así como
excepto(
crossjoin(distinct(sales[date]),distinct(sales[product_id]),distinct(sales[store_id])),
selectcolumns(inventory,"date",inventory[date],"product_id",inventory[product_id],"store_id",inventory[store_id]
))
Hola @amitchandak, ,
Gracias por su rápida respuesta!
Sí, suponemos que la venta se pierde porque no hay ningún registro de inventario ese día.
Desafortunadamente esa fórmula no parece funcionar, obtengo este error:
"elExpresiónse refiere amúltiples columnas, Múltiples columnasno se puede convertir en unEscalarvalor"
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |