Qlik Community

Mexico

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

dias habiles trascurridos

Hola nuevamente QlikView México,

Estoy programando una razón financiera que requiere se divida entre el número de días habiles trabajados, encontré una función pero no se como darle la fecha inicial ni la final si esta depende del mes y el año que ese seleccionado.

Esta es la función: networkdays ('2007-02-19', '2007-03-01')

no estoy usando ningún calendario solo necesito una aproximación sin fines de semana

muchsimas gracias en adelantado y saludos

1 Solution

Accepted Solutions
Not applicable
Author

Hola Anilu, la función networkdays toma como argumento dos "objetos" fecha una inicial y una final. Ahora si el usuario puede hacer selecciones sobre mes y año, asumo que esos campos se derivaron de un campo Fecha, por lo que la función la puedes llamar de la siguiente forma:

networkdays(min(Fecha), max(Fecha))

Por otro lado, si el calendario(fechas) está derivado de transacciones que sólo ocurren en días hábiles (e.g. facturas) lo que podrías hacer es:

count(distinct Fecha)

Con esta última aproximación estarías eliminando no sólo fines de semana pero también días festivos.

Saludos, si necesitas más ayuda no dudes en escrbir.

View solution in original post

3 Replies
mbernales
Contributor III
Contributor III

Hola Anilu,

No estoy seguro si entendí bien tu duda pero ahi va la respuesta (a lo que entendi).

Si quieres setear el año y mes puedes hacerlo de varias formas, la que yo recomiendo es crear las variables de fecha previamente.

Primero puedes setear mes y años a consultar:

SET AÑO = 2010;

SET MES = 5;

Esto también lo puedes setear automatico de la siguiente manera:

SET AÑO = YEAR(TODAY());

SET MES = NUM(MONTH(today());

Con esto queda automatico para que calcule el mes en curso. Luego los llamas dentro de otro seteo de variables, en este caso nos aprovecharemos de las funciones que calcula el inicio y fin de mes.

LET FechaInicio = MonthStart(MAKEDATE($(AÑO),$(MES)));

LET FechaFin = MonthEnd(MAKEDATE($(AÑO),$(MES)));

Luego puedes llamarles de igual manera

LET DiasHabiles = networkdays (FechaInicio, FechaFi);

Con esto puedes tener los días habiles correspondientes al mes en curso, pruebalo y me cuentas si te sirve.

Not applicable
Author

Hola Anilu, la función networkdays toma como argumento dos "objetos" fecha una inicial y una final. Ahora si el usuario puede hacer selecciones sobre mes y año, asumo que esos campos se derivaron de un campo Fecha, por lo que la función la puedes llamar de la siguiente forma:

networkdays(min(Fecha), max(Fecha))

Por otro lado, si el calendario(fechas) está derivado de transacciones que sólo ocurren en días hábiles (e.g. facturas) lo que podrías hacer es:

count(distinct Fecha)

Con esta última aproximación estarías eliminando no sólo fines de semana pero también días festivos.

Saludos, si necesitas más ayuda no dudes en escrbir.

Not applicable
Author

WooooooW!!!!!!!! Mil gracias Ivan quedo perfecto!!!!!!!

saludos y nuevamente gracias, creo que ya me empieza a caer el veinte 😉