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
Trolleri
Helper I
Helper I

Mida para estimar la pérdida de ventas debido al stock

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_dateproduct_idCantidadstore_id
2019-01-011101
2019-01-011112
2019-01-011103
2019-01-01271
2019-01-012132
2019-01-013112
2019-01-013103
2019-01-02111
2019-01-02122
2019-01-02183
2019-01-022101
2019-01-022112
2019-01-02382

Muestra de la tabla de inventario:

Fechaproduct_idCantidadstore_id
2019-01-011301
2019-01-011202
2019-01-011353
2019-01-012201
2019-01-012252
2019-01-013221
2019-01-013232
2019-01-013223
2019-01-021201
2019-01-02192
2019-01-021253
2019-01-022131
2019-01-022122
2019-01-023122

Por lo tanto, los siguientes productos y fechas deben estar marcados como stockout, podrían ser una medida, una columna o una tabla:

Fechaproduct_idstore_idStockout
2019-01-0123Verdad
2019-01-0223Verdad
2019-01-0231Verdad
2019-01-0233Verdad

¿Es esto posible lograr?

9 REPLIES 9
v-lionel-msft
Community Support
Community Support

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()
)

ii4.PNG

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.

Mariusz
Community Champion
Community Champion

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 )

Saludos
Mariusz

Si este post ayuda,entonces por favor considere aceptarlo como la solución.

Por favor, siéntase libre de conectarse conmigo.
Linkedin

Hola @Mariusz ,

La fórmula funciona, pero siempre devuelve 0.

¿No estoy seguro de lo que se supone que debe devolver?

Mariusz
Community Champion
Community Champion

Hola @Trolleri

¿Has comprobado el archivo adjunto?

Saludos
Mariusz

Si este post ayuda,entonces por favor considere aceptarlo como la solución.

Por favor, siéntase libre de conectarse conmigo.
Linkedin

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.

Mariusz
Community Champion
Community Champion

Hola @Trolleri

Consulte el archivo adjunto con código ajustado para devolver Total Count

Saludos
Mariusz

Si este post ayuda,entonces por favor considere aceptarlo como la solución.

Por favor, siéntase libre de conectarse conmigo.
Linkedin

@Trolleri , si la solución de @Mariusz no funciona, la marca de los dos. Lo comprobaremos de nuevo.

amitchandak
Super User
Super User

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 ??

@Trolleri

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"

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.