Skip to main content
Announcements
NEW Customer Portal: Initial launch will improve how you submit Support Cases. FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
iralza01
Contributor II
Contributor II

Mes actual menos los últimos 3 días

Hola,

Tengo una variable llamada Perido y me gustaría calcular el mes actual menos los últimos 3 días, además cuando haga el cálculo de los últimos 3 días no quiero que tenga en cuenta los sabados y domingos ya que son festivos.

¿Podéis ayudarme?

Gracias

4 Replies
hcabrera
Contributor III
Contributor III

Hola,

Puedes intentar con:

=if(WeekDay(Today()-3) = 'dom',Date(Today()-5),if(WeekDay(Today()-3) = 'sáb', Date(Today()-4), Date(Today()-3)))

siempre y cuando los dias de semana esten seteados en main así:

SET DayNames='lun;mar;mié;jue;vie;sáb;dom';

saludos,

Henry C.

hector_munoz
Specialist
Specialist

Hola Irene,

Si lo que necesitas es por ejemplo sumar las ventas desde una fecha hasta otra teniendo en cuenta que la fecha de los datos es de hace 3 días, con el criterio siguiente:

Si hoy es lunes, la fecha fin es el miércoles de la semana pasada.

Si hoy es martes, la fecha fin es el jueves de la semana pasada.

Si hoy es miércoles, la fecha fin es el viernes de la semana pasada.

Si hoy es jueves, la fecha fin es el lunes de la misma semana.

Si hoy es viernes, la fecha fin es el martes de la misma semana.

Si hoy es sábado, la fecha fin es el miércoles de la misma semana.

Si hoy es domingo, la fecha fin es el jueves de la misma semana.

La fecha de inicio es el día 1 del mes de la fecha fin calculada con el criterio anterior.

, entonces lo que puedes hacer para obtener unas variables en script es lo siguiente:

LET vdFechaFinPeriodo = Date('07/05/2017' - Pick(Num(WeekDay('07/05/2017') + 1), 5, 5, 5, 3, 3, 3, 3), 'DD/MM/YYYY');

LET vdFechaInicioPeriodo = Date(MonthStart('$(vdFechaFinPeriodo)'), 'DD/MM/YYYY');


Saludos,

H

iralza01
Contributor II
Contributor II
Author

Muchas gracias a los dos, pero soy nueva ne Qlik y no termino de ver como hacerlo...

os adjunto el código que nos hizo el consultor:

Selector_Calendario:

LOAD    Distinct

    %KeyFechaSalida,

    Dual('Mes Actual', 5) as Periodo,

    'Mes Actual' as Periodo_text

FROM [xxxx.qvd](qvd)

Where Num(Month('$(vAux.Today)'-1))=Num(Month(%KeyFechaSalida))

and Num(Year('$(vAux.Today)'-1))=Num(Year(%KeyFechaSalida));

Yo querría crear un campo más en Periodo que fuese "Mes actual real" y que no tuviese en cuenta los últimos 3 días (descontando fines de semana)

hector_munoz
Specialist
Specialist

Hola Irene,

Prueba lo siguiente para tener un campo nuevo 'Mes actual real' con formato YYYY/MM:

Selector_Calendario:

LOAD    Distinct

    %KeyFechaSalida,

    Dual('Mes Actual', 5) as Periodo,

    'Mes Actual' as Periodo_text,

    Date(%KeyFechaSalida - Pick(Num(WeekDay(%KeyFechaSalida + 1), 5, 5, 5, 3, 3, 3, 3), 'DD/MM/YYYY')     AS 'Mes actual real'

FROM [xxxx.qvd](qvd)

Where Num(Month('$(vAux.Today)'-1))=Num(Month(%KeyFechaSalida))

and Num(Year('$(vAux.Today)'-1))=Num(Year(%KeyFechaSalida));

Saludos,
H