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
Meghanshu
Frequent Visitor

Consulta DAX para abrir saldo

Hola a todos, tengo un conjunto de datos de inventario que tiene transacciones diarias y me gustaría calcular los saldos de apertura y cierre.
La instantánea de los datos de inventario se muestra a continuación.
He calculado el saldo de cierre según la fórmula siguiente y tengo "Tabla de fechas" separada que tiene una relación con el campo Fecha de los datos de la invetoria
Cierre: CALCULATE(SUM(Table[Inventory Balance]),
FILTER(ALL('Date'[Date]), 'Date'[Date] <- MAX('Date'[Date]))
Calculado usando FromulaCálculo de necesidad para la apertura
FechaArtículoSaldo de inventarioCierreApertura
Miércoles, 1 de enero de 2020Portátil1
Jueves, 2 de enero de 2020Portátil3
viernes, 3 de enero de 2020Portátil-2
Sábado, 4 de enero de 2020Portátil35
Sábado, 1 de febrero de 2020Portátil3 5
Domingo, 2 de febrero de 2020Portátil-2
lunes, 3 de febrero de 2020Portátil4
martes, 4 de febrero de 2020Portátil-28 (Suma a partir de enero)
Domingo, 1 de marzo de 2020Portátil5 8
lunes, 2 de marzo de 2020Portátil-1
martes, 3 de marzo de 2020Portátil-1
Miércoles, 4 de marzo de 2020Portátil2
Jueves, 5 de marzo de 2020Portátil-112

Gracias de antemano !

1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@Meghanshu, la apertura debe ser 1 menos?

Apertura DE CALCULATE(SUM(Tabla[Balance de inventario]),
FILTER(ALL('Date'[Date]), 'Date'[Date] < MAX('Date'[Date])))

View solution in original post

7 REPLIES 7
amitchandak
Super User
Super User

@Meghanshu, la apertura debe ser 1 menos?

Apertura DE CALCULATE(SUM(Tabla[Balance de inventario]),
FILTER(ALL('Date'[Date]), 'Date'[Date] < MAX('Date'[Date])))

Hola @amitchandak

La consulta funciona perfectamente bien cuando cambio el valor máximo al valor mínimo me da el primer valor transaccional de apertura del mes.

¡¡Gracias!!

@amitchandak Esta consulta funciona perfectamente bien en los niveles de fecha individuales, pero ¿qué pasa si quiero abrir en el mes a nivel de mes

Calculado usando FromulaCálculo de necesidad para la apertura
FechaArtículoSaldo de inventarioCierreApertura
Miércoles, 1 de enero de 2020Portátil11
Jueves, 2 de enero de 2020Portátil34
viernes, 3 de enero de 2020Portátil-22
Sábado, 4 de enero de 2020Portátil35
Sábado, 1 de febrero de 2020Portátil385
Domingo, 2 de febrero de 2020Portátil-265
lunes, 3 de febrero de 2020Portátil4105
martes, 4 de febrero de 2020Portátil-28 (Suma a partir de enero)5
Domingo, 1 de marzo de 2020Portátil5138
lunes, 2 de marzo de 2020Portátil-1128
martes, 3 de marzo de 2020Portátil-1118
Miércoles, 4 de marzo de 2020Portátil2138
Jueves, 5 de marzo de 2020Portátil-1128

Este tipo de solución que estoy buscando.

La apertura de cualquier mes es igual al cierre de mi mes anterior.

Hola @Meghanshu,

Puede probar las siguientes columnas calculadas

Closing Balance = 
    var curDate = 'Table'[Date]
    var _item = 'Table'[Item]
    var invMonth =  CALCULATE(max('Date'[year-month]), FILTER('Date', 'Date'[Date] = curDate))
    var maxInvDate = CALCULATE(MAX('Date'[Date]), FILTER(ALL('Date'), 'Date'[year-month] =invMonth), FILTER('Table', 'Table'[Inventory Balance]<> 0 && 'Table'[Item] = _item))
return 
    if('Table'[Date] <> maxInvDate, BLANK(), CALCULATE(sum('Table'[Inventory Balance]), FILTER(ALL('Table'), 'Table'[Date]<=maxInvDate && 'Table'[Item] = _item)))

Opening Balance = 
    var curDate = 'Table'[Date]
    var _item = 'Table'[Item]
    var invMonth =  CALCULATE(max('Date'[year-month]), FILTER('Date', 'Date'[Date] = curDate))
    var maxInvDate = CALCULATE(min('Date'[Date]), FILTER(ALL('Date'), 'Date'[year-month] =invMonth), FILTER('Table', 'Table'[Inventory Balance]<> 0 && 'Table'[Item] = _item))
return 
    if('Table'[Date] <> maxInvDate, BLANK(), CALCULATE(sum('Table'[Inventory Balance]), FILTER(ALL('Table'), 'Table'[Date]<maxInvDate && 'Table'[Item] = _item)))

richbenmintz_0-1596210265770.png

Una cosa a tener en cuenta es que probablemente querrá crear medidas que supriman el total, ya que los valores de estas columnas calc no son aditivos

Espero que esto ayude,

Richard


¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
¿Mis respuestas ayudaron a llegar a una solución? Dale un kudos haciendo clic en Thumbs Up!



I hope this helps,
Richard

Did I answer your question? Mark my post as a solution! Kudos Appreciated!

Proud to be a Super User!


Hola @Meghanshu,

Pregunta 1:

Algo como abajo debería funcionar

_opening balance = 
    SWITCH(TRUE(), 
        ISBLANK(SUM('Table'[Inventory Balance])), BLANK(),
        HASONEVALUE('Date'[year-month]), CALCULATE(MIN('Table'[Opening Balance]), FILTER(ALL('Date'), 'Date'[year-month] = MIN('Date'[year-month]))),
        HASONEVALUE('Date'[Date]), MIN([Opening Balance]), 
    BLANK())

richbenmintz_0-1596215189245.png

Pregunta 2:

Depende de cómo desee tratar estos saldos, la fórmula generará actualmente un saldo por artículo

Gracias


¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
¿Mis respuestas ayudaron a llegar a una solución? Dale un kudos haciendo clic en Thumbs Up!



I hope this helps,
Richard

Did I answer your question? Mark my post as a solution! Kudos Appreciated!

Proud to be a Super User!


Hola @richbenmintz ,

En el ejemplo he mencionado una sola categoría (Laptop) lo que si tengo varias categorías en Artículos.

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.