Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
etovi1948
Contributor III
Contributor III

Calcular saldo mensuales y disponibilidad de caja

Buenas tardes. No encuentro cómo resolver esto: tengo una serie de registros de movimientos de ingresos y egresos de fondos, con fecha, tipo e importe. Hice varias métricas que calculan el saldo mensual (ingresos -egresos), pero necesito también calcular las disponibilidad en caja al cierre de cada mes, es decir, tomar los arrastres del saldo incial o el de los meses precdentes, y estoy trabado con eso. En la tabla que armé como ejemplo, es fácil armar métricas para los saldos (1000 a fin de enero y -2000 a fin de febrero), pero debo agregar que con el saldo inicial de 5000, la disponibilidad de caja a fin de enero era 6000 y a fin de febrero era 4000. Agradeceré una ayuda.

     Disponible 
Saldo inicial             5.000
FechaTipo $  Saldo mes  
1/1/2019Ingreso          2.000  
2/1/2019Ingreso          1.000  
3/1/2019Egreso          2.500  
4/1/2019Ingreso          1.000  
5/1/2019Egreso            500          1.000          6.000
1/2/2019Egreso          1.000  
2/2/2019Ingreso          1.500  
3/2/2019Egreso            500  
4/2/2019Ingreso          1.000  
5/2/2019Ingreso          2.000  
6/2/2019Egreso          5.000-         2.000          4.000
1 Solution

Accepted Solutions
jmmayoral3
Creator
Creator

Hola Etovi.

Una posible solución es calcular el saldo mensual y el disponible para cada día del mes. 

El scrip sería algo así:

Let vL.disponible= 5000;

Caja_tmp:
LOAD * INLINE [
Fecha, Tipo, Importe
1/1/2019, Ingreso, 2.000
2/1/2019, Ingreso, 1.000
3/1/2019, Egreso , 2.500
4/1/2019, Ingreso, 1.000
5/1/2019, Egreso , 500
1/2/2019, Egreso , 1.000
2/2/2019, Ingreso, 1.500
3/2/2019, Egreso , 500
4/2/2019, Ingreso, 1.000
5/2/2019, Ingreso, 2.000
6/2/2019, Egreso , 5.000
];

 

//Tabla intermedia a la que se añade el saldo mensual acumulado
noconcatenate
Caja_SaldoMes:
LOAD Fecha, Tipo, Importe,
IF(Month(Fecha)<>Month(Previous(Fecha)),
IF(Tipo='Egreso',-1,1)*Importe,
rangesum(IF(Tipo='Egreso',-1,1)*Importe,peek('Saldo Mes'))) AS "Saldo Mes"
RESIDENT Caja_tmp;

Drop table Caja_tmp;

//Tabla final con el saldo mensual acumulado y el disponible
noconcatenate
Caja:
LOAD Fecha, Tipo, Importe, [Saldo Mes],
rangesum(IF(rowno()=1,$(vL.disponible),0)+ IF(Tipo='Egreso',-1,1)*Importe, peek('Disponible')) AS "Disponible"
RESIDENT Caja_SaldoMes;

Drop table Caja_SaldoMes;

 

El resultado sería algo así:Captura.JPG

 

View solution in original post

2 Replies
jmmayoral3
Creator
Creator

Hola Etovi.

Una posible solución es calcular el saldo mensual y el disponible para cada día del mes. 

El scrip sería algo así:

Let vL.disponible= 5000;

Caja_tmp:
LOAD * INLINE [
Fecha, Tipo, Importe
1/1/2019, Ingreso, 2.000
2/1/2019, Ingreso, 1.000
3/1/2019, Egreso , 2.500
4/1/2019, Ingreso, 1.000
5/1/2019, Egreso , 500
1/2/2019, Egreso , 1.000
2/2/2019, Ingreso, 1.500
3/2/2019, Egreso , 500
4/2/2019, Ingreso, 1.000
5/2/2019, Ingreso, 2.000
6/2/2019, Egreso , 5.000
];

 

//Tabla intermedia a la que se añade el saldo mensual acumulado
noconcatenate
Caja_SaldoMes:
LOAD Fecha, Tipo, Importe,
IF(Month(Fecha)<>Month(Previous(Fecha)),
IF(Tipo='Egreso',-1,1)*Importe,
rangesum(IF(Tipo='Egreso',-1,1)*Importe,peek('Saldo Mes'))) AS "Saldo Mes"
RESIDENT Caja_tmp;

Drop table Caja_tmp;

//Tabla final con el saldo mensual acumulado y el disponible
noconcatenate
Caja:
LOAD Fecha, Tipo, Importe, [Saldo Mes],
rangesum(IF(rowno()=1,$(vL.disponible),0)+ IF(Tipo='Egreso',-1,1)*Importe, peek('Disponible')) AS "Disponible"
RESIDENT Caja_SaldoMes;

Drop table Caja_SaldoMes;

 

El resultado sería algo así:Captura.JPG

 

etovi1948
Contributor III
Contributor III
Author

Gracias, Jmmayoral3, es una opción que funciona.

Saludos. Ernesto