Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Obtener el dia de la semana del año anterior

Buen@s,

Me ha surgido un problema el cual no encuentro la forma de solucionarlo y agradecería mucho vuestra colaboración.

Mi problema es que que no consigo obtener correctamente la fecha correspondiente al año anterior a día de hoy, es decir, hoy, 27/03/2014 se corresponde con el jueves en la semana y lo que quiero obtener es la fecha equivalente en el año pasado que seria en el mismo día de la semana, en este caso seria 28/03/2014 que cae en jueves dentro de la semana correspondiente a la fecha de hoy.

He conseguido obtenerlo sin problemas para fechas que se consideran normales (en medio del año, etc), pero cuando se trata de fechas de principio de año y de fin de año y años bisiestos, los datos que obtengo son erróneos.

Utilizo las funciones que ofrece el Qlikview para obtener los datos con respecto a las semanas como week(), weekday(), weekyear(), makeweekdata(), etc

os pongo una aproximación que tengo hasta ahora en la que obtengo la fecha y que creo que para fechas de principio de año funciona bien pero que falla para fechas de finales de año:

if((weekyear(makedate(varAño,varMes,varDia))-weekyear(makedate(varAño-1,varMes,varDia)))>1,

makeweekdate(varAño-1,week(makedate(varAño,varMes,varDia)),num(weekday(makedate(varAño,varMes,varDia)))),

makeweekdate(weekyear(makedate(varAño-1,varMes,varDia)),week(makedate(varAño,varMes,varDia)),num(weekday(makedate(varAño,varMes,varDia))))

)

utilizo la funcion MakeWeekDate() porque se le indica el año, la semana y el dia de semana) pero el problema es determinar correctamente que datos debo indicar para obtener la fecha deseada.

Espero haber sido claro explicando mi problema.

Un cordial saludo a tod@s y gracias de antemano.

1 Solution

Accepted Solutions
sebastiandperei
Specialist
Specialist

Antonio, a ver si entiendo. Hoy es Sábado 29/03/14, lo que necesitás saber es: "De la semana del mismo día del año anterior, cuál era el Sábado?". O también podrías preguntar: "qué Sábado estaba más cerca del 29/03/13"???. Esto es una aproximación, no es un dato certero. Pero también podrías preguntar: "Ok, hoy 29/3/14 es el 13vo Sábado del 2014, cuál fue el 13vo Sábado del 2013??"

Para el primer caso, usá:

=Date(

AddYears(Today(),-1)-num(Weekday(AddYears(Today(),-1))) // Comienzo de semana del mismo día del año anterior

+num(Weekday(Today())) // Día de la semana actual

)

Si este no es el cálculo que necesitás, avisame. Es probable que todos den resultados similares, pero si te ponés a pensar, no son lo mismo.

View solution in original post

4 Replies
fdelacal
Specialist
Specialist

se me ocurre una idea nose si te valdra o no.

Cuenta los dias desde el comienzo del año hasta el dia que quieras ver.

la diferencia a hoy por ejemplo 85 dias. luego suma a año menos 1 als 2013 los 85 dias, y deberia funcionar segun entiendo.

Un saludo

Not applicable
Author

Gracias Facundo de la Cal, es un punto de vista que no se me había ocurrido pero no lo entiendo muy bien. ¿Podrías poner un ejemplo?

Gracias.

sebastiandperei
Specialist
Specialist

Antonio, a ver si entiendo. Hoy es Sábado 29/03/14, lo que necesitás saber es: "De la semana del mismo día del año anterior, cuál era el Sábado?". O también podrías preguntar: "qué Sábado estaba más cerca del 29/03/13"???. Esto es una aproximación, no es un dato certero. Pero también podrías preguntar: "Ok, hoy 29/3/14 es el 13vo Sábado del 2014, cuál fue el 13vo Sábado del 2013??"

Para el primer caso, usá:

=Date(

AddYears(Today(),-1)-num(Weekday(AddYears(Today(),-1))) // Comienzo de semana del mismo día del año anterior

+num(Weekday(Today())) // Día de la semana actual

)

Si este no es el cálculo que necesitás, avisame. Es probable que todos den resultados similares, pero si te ponés a pensar, no son lo mismo.

Not applicable
Author

Gracias Sebastián, es una aproximación muy buena, de hecho es lo que buscaba.

Gracias a todos por ayudarme.