Qlik Community

Mexico

cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Cálculo del saldo del mes antierior

Hola QlikView Mexico,

Primero gracias por todo el apoyo !!!

En una tabla se calcula el saldo de los movimientos del mes seleccionado y en una variable necesito que se caldule el saldo de esos movimientos pero del mes previo al mes seleccionado, he hecho ya varios intentos que les anexo a continuación pero no lo logro, cada una uno de ellos me da 0!!!!! y tengo el timpo justo ya para liberar mil mil gracias de antemano

=

num(sum({<Month={"$(=AddMonths(Max(Month),-1))"}, [G/L Account Name3] = {'Bancos'}>} $([G/L Amount])) ,'$#,##0.00;($#,##0.00)'

)

//sum({<Month={$(=Month-1)}>} [G/L Account Name3] = {'Bancos'}>} $([G/L Amount])))

//{"<$(#=MonthName(max(Month_Year)))"}, [G/L Account Name3] = {'Bancos'}>} $([G/L Amount]))

saludos a todos





1 Solution

Accepted Solutions
Not applicable
Author

Hola Anilu, ya sé que es lo que estaba mal, que el campo de tu fecha no se llama Date se llama [Accounting Date]. Pude saberlo porque sé que estás usando nuestro template de SAP SBO.

Aquí está la expresión:

sum({$<Month_Year={"$(=monthname( max([Accounting Date]), -1 ) )"}, [G/L Account Name3] = {'Bancos'}, Month=, Year=>} $([G/L Amount])

View solution in original post

9 Replies
mbernales
Contributor III
Contributor III

Hola Anilu,

Primero puedes subir alguna foto de la estructura del modelo, para ver las relaciones y realizar un pequeño experimento para ayudarte.

Segundo, por que llamas a una variable dentro de esta variable. En los tres intentos veo que realizas llamados a $([G/L Amount]). Podrías probar con directamente usar la expresión que contiene la variable en cuestion y agregar el análisis de conjuntos que calcule el mes anterior.

Not applicable
Author

Hola a todos

Tuve ese mismo problema con un reporte de Estado de Resultados
Lo solucione de esta forma:

=if(Mes=1,
sum({<Año=,Año={$(#=Max(Año)-1)},Mes=,Mes={$(#=Max(Mes)+11)}>} Saldo),
sum({<Mes=,Mes={$(#=Max(Mes)-1)}>} Saldo))

La sentencia If la puse, ya que, cuando seleccionamos Enero, tenemos que ir a Diciembre del Año anterior.

Saludos.

Not applicable
Author

Hola Anilu, veo varios problemas con tu expresion dentro del set analysis:

- La funcion addmonths toma como argumento una fecha no un entero (max(month))

- La funcion addmonths regresa una fecha no un mes, por lo que la igualacion Month = addmonths nunca va a cumplirse.

- si quieres hacer selecciones sólo sobre el mes sin cosiderar el año seleccionado puede ocurrir por ejemplo que el usuario haya seleccionado ene de 2009, entonces con el addmonths vas a obtener que el mes pasado fue diciembre pero como no se cambio la selecion del año quedaría como diciembre de 2009 en lugar de diciembre de 2008.

Asumiendo que el usuario tiene dos list boxes para seleccionar la fecha, una la del año y otra la del mes, tu expresión debe verse más o menos así:

sum({$<MonthName={"$(=monthname( max(Date), -1 ) )"}, [G/L Account Name3] = {'Bancos'}, Month=, Year=>} $([G/L Amount]))


Saludos

Not applicable
Author

Hola Ivan,

Muchas gracias por tu apoyo, ya me queda mas claro como debo usar esas funciones.

En efecto tendo dos list boxes una para que seleccionen el año y otra para que seleccionen el mes, ya intenté poner tu código pero algo pasa con mi proyecto que me da la impresión de que no reconoce el MonthName, me esta faltando algo en mi script????

Al momento de ponerlo la variable de G/L Amount se pinta de negro y ya estuve probando y si es cuando le pongo el MonthName.

Muchas gracias en verdad por tu ayuda

saludos

Not applicable
Author

Hola Anilu, ya vi donde está el problema, confundí el nombre de tu campo Mes/Año, creo que tu lo llamaste Month_Year, si es así, la expresión quedaría de esta forma:

sum({$<Month_Year={"$(=monthname( max(Date), -1 ) )"}, [G/L Account Name3] = {'Bancos'}, Month=, Year=>} $([G/L Amount]))

Saludos.

Not applicable
Author

Hola Iván,

[:'(], buuuaaaaa!!!! la sintaxis ya está correcta pero cualquier mes que selecciono me da "0" buuuaaaaaaa!!!!!!!

mil gracias por tu pronta respuesta

Not applicable
Author

Hola Anilu, no entiendo porque te da cero, debería darte algún número siempre que haya datos en el mes pasado, lo que único que se me ocurre es que hayas omitido la parte final del set analysis:

Month=, Year=

Saludos.

Not applicable
Author

Hola Anilu, ya sé que es lo que estaba mal, que el campo de tu fecha no se llama Date se llama [Accounting Date]. Pude saberlo porque sé que estás usando nuestro template de SAP SBO.

Aquí está la expresión:

sum({$<Month_Year={"$(=monthname( max([Accounting Date]), -1 ) )"}, [G/L Account Name3] = {'Bancos'}, Month=, Year=>} $([G/L Amount])

Not applicable
Author

Hola Iván,

Efectivamente me imagine que por ahi estaba mi error y lo cambié pero ademas el limitarle la cuenta me estaba dando un resultado que no era el que debia pero gracias ya por fin me quedó

Muchas gracias por tu tiempo y tu conocimiento!!!!!!!!!!!!!

saludos!