Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Syndicate_Admin
Administrator
Administrator

Calcular stock remanente

Crisvilla88_0-1722355866356.png

Estimados, en base a la imagen adjunta requiero lo siguiente:

- A través de DAX, agregar una columna adicional que vaya mostrando el stock remanente por cada producto.

- Como ven, la tabla tiene varios productos. Cada producto tiene como primera linea el Stock Inicial. A partir de este stock inicial, necesito ir restando la demanda y sumando las entradas de inventario que tenga.

Por ejemplo:

El producto 1005304 tiene stock inicial de 16.620 unidades. Necesito que el stock remanente de Enero sea el stock inicial (16.620) - Demanda Enero (4.984) = 11.636.

Luego el stock de Febrero sea el Stock de cierre del mes anterior (11.636) - Demanda Febrero (1.650) = 9.986.

Además debe incorporar como Stock, las entradas de inventario de los meses futuros.

Esto quiere decir, que considerando el mismo producto y la imagen arriba, el stock de cierre de Marzo sera = Stock Cierre Febrero + Entrada Stock Marzo - Demanda de Marzo.

Agradezco vuestro apoyo.

18 REPLIES 18
Syndicate_Admin
Administrator
Administrator

Estimado @v-yilong-msft , gracias por su respuesta.

Se parece, pero no es lo mismo.

Aquí les comparto lo que necesito. Teniendo en cuenta la imagen a continuación, necesito la columna "Stock final" en PBI.

Crisvilla88_0-1722431967160.png

como puedes notar, la primera fila de cada producto es el Stock Inicial. Luego, el "Stock Final" es sumar la oferta de nuevo stock menos la demanda.

Espero que esto se aclare.

Gracias de antemano.

¿Por qué no tuvo en cuenta el valor de 750 en el cálculo del mes de marzo?

Hola @SachinNandanwar veo que se considera.

El "Stock Final" de Marzo es = Stock Final de Febrero (9.986) - Demanda de Marzo (5.700) + Oferta (750) = 5.036.

Oh. Es decir, 0,750 y no 750

Todos los datos están en miles de unidades 😉

Necesita indexar sus registros. Si nos fijamos en las tres primeras filas tenemos las fechas 29-02-2024, 30-03-2024 seguidas de otra 29-02-2024.

El DAX considerará primero el orden de los dos registros del 29-02-2024 y luego considerará el 30-03-2024 en su cálculo.

Eche un vistazo a estos datos de muestra y sus resultados >>>

Código,Fecha,Año,Demanda,Oferta,SelecciónActivado
1,29-02-2024,2024,0,16620,M01/2024
1,30-01-2024,2024,4984,0,M02/2024
1,29-02-2024,2024,1650,0,M03/2024
1,30-03-2024,2024,5700,750,M04/2024
1,30-04-2024,2024,4950,8875,M05/2024

FinalStock = CALCULATE(SUM('Table'[Supply])-SUM('Table'[Demand]),ALLEXCEPT('Table','Table'[Date]),'Table'[Date]<=MAX('Table'[Date]))


SachinNandanwar_0-1722441256674.png

Eche un vistazo a la salida después de agregar una columna de índice.

Datos de muestra >>
Índice.Código,Fecha,Año,Demanda,Oferta,SelecciónOn
1,1,29-02-2024,2024,0,16620,M01/2024
2,1,30-01-2024,2024,4984,0,M02/2024
3,1,29-02-2024,2024,1650,0,M03/2024
4,1,30-03-2024,2024,5700,750,M04/2024
5,1,30-04-2024,2024,4950,8875,M05/2024

FinalStock = CALCULATE(SUM('Table'[Supply])-SUM('Table'[Demand]),ALLEXCEPT('Table','Table'[Index]),'Table'[Index]<=MAX('Table'[Index]))

SachinNandanwar_1-1722441603327.png
Supongo que es similar a lo que quieres







Gracias @SachinNandanwar .

¿Cómo manejo los índices?. debería definirse por producto?.

Hola @Crisvilla88 ,

Tendría que crearlos probablemente en función de la columna de material/producto, asegurándose de que el perdiod/sección que tiene un valor "Stock" siempre se asigne con el valor 1 y el resto de los registros se incrementen en 1 según el orden del mes y el año.

Caro

Lo intento pero parece que algo va mal

Crisvilla88_0-1722462926277.png

Comparta algunos datos de muestra o el archivo PBI.

Espero que esto funcione, porque no tengo acceso para compartir el archivo PBI aquí

https://drive.google.com/file/d/1KJ3dsKpW5lR06NIStx2LVwnYC_ouZ28E/view?usp=drive_link

Dice acceso denegado.

Arrepentido. ¿Podría intentarlo de nuevo, por favor?

https://drive.google.com/file/d/1KJ3dsKpW5lR06NIStx2LVwnYC_ouZ28E/view?usp=drive_link

Estimada @SachinNandanwar ,

Creo que lo conseguí agregando el "código" en la función ALLEXCEPT

Crisvilla88_0-1722522903756.png

Hola @Crisvilla88 ,

Solo estaba echando un vistazo a su archivo. Puede reemplazar ALLEXCEPT por ALLSELECTED. Su requisito inicial no mencionaba que filtraría por códigos

F.stock = CALCULATE(SUM('Proyección'[Supply])-SUM('Proyección'[Demand]),ALLSELECTED('Proyección'[Index]),'Proyección'[Index]<=MAX('Proyección'[Index]))




¡Sí!, me gustaría filtrar códigos, y luego agregar familia, y subfamilia entonces.

Lo intento con ALLSELECTED, pero no funciona. Funciona añadiendo 'Proyección' en la función ALLEXCEPT.

Hago esto porque quiero estimar el stock final de cada mes y verlo en un gráfico.

Crisvilla88_0-1722532310301.png

El problema que veo, es que el PBI muestra que el stock final de Mach es 8.966.609, pero en realidad es 7.225.012.

He descargado la tabla del PBI en un fichero CSV, y si sumas el stock final, no puedes la diferencia.

PBI: https://drive.google.com/file/d/1KJ3dsKpW5lR06NIStx2LVwnYC_ouZ28E/view?usp=drive_link

CSV: https://drive.google.com/file/d/1rQdUxAbG5Q1mJ8AmvrQrHVUYSpWl93JL/view?usp=drive_link

Debe agregar un índice a sus registros para una identificación única. Si nos fijamos en las tres primeras filas, tenemos las fechas 29-02-2024, 30-03-2024, seguidas de otra 29-02-2024.

DAX considerará que los dos registros del 29-02-2024 son iguales a menos que haya una forma de identificarlos como no únicos.


Echa un vistazo a estos datos de muestra

Código,Fecha,Año,Demanda,Oferta,SelecciónActivado
1,29-02-2024,2024,0,16620,M01/2024
1,30-01-2024,2024,4984,0,M02/2024
1,29-02-2024,2024,1650,0,M03/2024
1,30-03-2024,2024,5700,750,M04/2024
1,30-04-2024,2024,4950,8875,M05/2024

FinalStock = CALCULATE(SUM('Table'[Supply])-SUM('Table'[Demand]),ALLEXCEPT('Table','Table'[Date]),'Table'[Date]<=MAX('Table'[Date]))


Compruebe la salida.

SachinNandanwar_1-1722441057488.png


Ahora, después de agregar una columna de índice .
Ejemplos de datos a continuación >>

Índice,Código,Fecha,Año,Demanda,Oferta,SelecciónOn
1,1,29-02-2024,2024,0,16620,M01/2024
2,1,30-01-2024,2024,4984,0,M02/2024
3,1,29-02-2024,2024,1650,0,M03/2024
4,1,30-03-2024,2024,5700,750,M04/2024
5,1,30-04-2024,2024,4950,8875,M05/2024

El Dax es capaz de identificarlos como filas separadas independientemente de los meses únicos

FinalStock = CALCULATE(SUM('Table'[Supply])-SUM('Table'[Demand]),ALLEXCEPT('Table','Table'[Index]),'Table'[Index]<=MAX('Table'[Index]))

SachinNandanwar_0-1722440854966.png



Syndicate_Admin
Administrator
Administrator

Hola @Crisvilla88 ,

Creo una mesa como mencionaste.

vyilongmsft_0-1722407943449.png

A continuación, creo una columna calculada.

Column = 
200
    - CALCULATE (
        SUM ( 'Table'[Total] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            'Table'[Number] = EARLIER ( 'Table'[Number] )
                && 'Table'[Name] <= EARLIER ( 'Table'[Name] )
        )
    )

vyilongmsft_1-1722408008503.png

Saludos

Yilong Zhou

Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors