Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
walterlh
Creator II
Creator II

Días hábiles

Hola a todos, estoy con un informe que me esta costando trabajo. Se trata de un simple cálculo que no estoy pudiendo calcular seguramente por ignorar alguna función. Necesito calcular lo siguiente. Tengo una tabla de Tarjetas y otra de Acreditaciones.

Cada operación con tarjeta conlleva cierta cantidad de días para que se lleve acabo la acreditación del dinero en el banco.

Ejemplo:

Imagen1.png

entonces si se hizo una operación con la tarjeta Mastercard el día 25/05/2017, la fecha de acreditación sería el Lunes 05/06 porque no se debe tener en cuenta los días sábados y domingo.

Es decir, necesito calcular la fecha de acreditación de cada operación teniendo en cuenta los días hábiles que tarda cada tarjeta.

Alguien lo hizo? me pueden dar una idea?

Gracias. Walter

3 Replies
rubenmarin

Hola Walter, igual añadiendo un contador para los días hábiles sería más fácil llegar a la fecha que necesitas, algo como:

Calendario:

LOAD Fecha,

     ...,

     If(Num(WeekDay(Fecha))<6, RangeSum(Peek(ContadorHabilTemp), 1), Peek(ContadorHabilTemp)) as ContadorHabilTemp,

     If(Num(WeekDay(Fecha))<6, RangeSum(Peek(ContadorHabilTemp), 1) as ContadorHabil,


Si quieres añadir más días no-hábiles puedes usar networkdays:

     If(networkdays(Fecha, Fecha, $(vDiasNoHabiles)),...

Saludos.

ger_alegria
Partner - Creator
Partner - Creator

Hola Walter, buen día.

No sé si ya lograste resolver el problema pero es muy sencillo usando la función LastDayWork.

Con esta función partiendo de una fecha puedes y un númeor de días puedes determinar la fecha en día hábil que buscas.

LastDayWork(Fecha_Operación,Dias_Hábiles)

Si tu fecha de operación es por ejemplo el 25 de mayo de 2017 y es una mastercard como lo marcas en tu ejemplo, la función te regresará lo siguiente:

LastDayWork('25/05/2017',7) = 2/06/2017, esto por que la fecha considera el día de inicio como uno de los días a contar si quieres considerar 7 días después de la fecha de inicio basta con que sumes un 1:

LastDayWork(Fecha_Operación,Dias_Hábiles)


->


LastDayWork('25/05/2017',7+1) = 5/06/2017


Déjame saber si esto te ayudo.


Saludos.

el_aprendiz111
Specialist
Specialist

Walter buenas tardes

desde el script con mapeo :

d:
Mapping LOAD * Inline
[
Tarjeta,Dias Habiles
Mastercard,7
Visa,5
Maestro,3
]
;

LOAD *, lastworkdate (Fecha_Operación, ApplyMap('d',tarjeta,Null()), Fecha_Operación, Fecha_Operación) AS f_acreditación


;
LOAD tarjeta,
Fecha_Operación
FROM
EjemploDias.xlsx
(
ooxml, embedded labels, table is Sheet1)