Qlik Community

QlikView App Development

Discussion Board for collaboration related to QlikView App Development.

mmunozcrisosto
New Contributor

Suma acumulada del año anterior al mes en curso del año anterior

Buenas tardes.

Estoy Tratando de Obtener Una Expresión que me permita Obtener La Suma Acumulada del año anterior al mes en curso del año anterior, me explico:

Hoy Siendo 5 de agosto del 2019, necesito La Venta del 2018 al 5 de agosto del 2018.

Muchas gracias!

 

1 Solution

Accepted Solutions
pepecc
New Contributor III

Re: Suma acumulada del año anterior al mes en curso

Dos sugerencias según mi experiencia:

1. La expresión del set analysis debe devolver un formato de fecha del mismo tipo del que tienes en Fecha Ok. Si no no lo va a evaluar correctamente.

2. Yo para comparar siempre utilizo fechas transformadas en números. De esa forma no afecta el formato de las fechas. A veces incluso duplico la columna de fecha en el script, teniendo la misma fecha con formato fecha y con formato numérico.

Espero que te sirva. Conceptualmente yo creo que la expresión sugerida es correcta. Seguramente te fallan las comparaciones por los formatos de fecha usados.

12 Replies
Claudiu_Anghelescu
Contributor III

Re: Suma acumulada del año anterior al mes en curso

Sum({<Date={">=$(=Num(YearStart(Max(Date), -1)))<=$(=AddYears(Max(Date), -1))"}>} Sales)

To help community find solutions, please don't forget to mark as correct.
mmunozcrisosto
New Contributor

Re: Suma acumulada del año anterior al mes en curso

No me funciona 😞

 

Claudiu_Anghelescu
Contributor III

Re: Suma acumulada del año anterior al mes en curso

Replace "Date"  and "Sales" with your corresponding fields in the formula

To help community find solutions, please don't forget to mark as correct.
mmunozcrisosto
New Contributor

Re: Suma acumulada del año anterior al mes en curso

Sum ({<[Fecha ok] = { "> = $ (= Num (YearStart (Max ([Fecha ok] ), -1))) <= $ (= AddYears (Max ([Fecha ok] ), -1))"}>} [unidades])

 

tengo eso pero no me funciona

Claudiu_Anghelescu
Contributor III

Re: Suma acumulada del año anterior al mes en curso

The result is not matching or do you have any error in expression?

 

 

To help community find solutions, please don't forget to mark as correct.
mmunozcrisosto
New Contributor

Re: Suma acumulada del año anterior al mes en curso

Me devuelve el valor 0
pepecc
New Contributor III

Re: Suma acumulada del año anterior al mes en curso

Dos sugerencias según mi experiencia:

1. La expresión del set analysis debe devolver un formato de fecha del mismo tipo del que tienes en Fecha Ok. Si no no lo va a evaluar correctamente.

2. Yo para comparar siempre utilizo fechas transformadas en números. De esa forma no afecta el formato de las fechas. A veces incluso duplico la columna de fecha en el script, teniendo la misma fecha con formato fecha y con formato numérico.

Espero que te sirva. Conceptualmente yo creo que la expresión sugerida es correcta. Seguramente te fallan las comparaciones por los formatos de fecha usados.

mmunozcrisosto
New Contributor

Re: Suma acumulada del año anterior al mes en curso

Creo que por ahí va el problema, con el formato de fecha...cómo puedo solucionarlo?

 

pepecc
New Contributor III

Re: Suma acumulada del año anterior al mes en curso

Hay varias formas. Sin conocer tu cuadro, como te decía antes, yo te recomiendo que transformes Fecha OK en número en el script (ya sea esa columna, u otra  gemela que llames [Fecha OK num]. Luego en las comparaciones, siempre transforma todas las fechas que te devuelvan las funciones de fecha de Qlik en número usando la función num, y compara con ésta. De esa manera comparas siempre números con números, con que no hay formatos de fecha mareantes que te descoloquen las comparaciones.

Si esta forma descoloca demasiado tu cuadro, dímelo y vemos cómo dar formato de fecha comparable dentro del set analysis (aunque esa forma podría generar expresiones muy largas). Piensa que para comparar adecuadamente tienes que llegar al formato YYYYMMDD, porque otros formatos puede no compararlos adecuadamente.