jueves, 10 de noviembre de 2011

Calendario 2012: Mejoras en el calendario anual individualizado por trabajador


Mejoras para el calendario del 2012, dos tandas de vacaciones de empresa.

Nuestro amigo JB nos hace el siguiente comentario al modelo del planing anual por trabajador: “¿Se podría poner 2 rangos de vacaciones de empresa? por ejemplo yo tengo 2 rangos uno para semana santa y otro para navidad?, ¿es posible?”.

Ando estos días mal de tiempo, preparando la presentación de la Asociación 3e “Educación, esfuerzo y excelencia”, así que no me alargaré mucho, simplemente decirle que SI.
Es relativamente sencillo, hay dos tipos de fórmulas que tienen en cuenta las vacaciones de la empresa, y estas son: a) las que determinan que tipo de incidencia es (Hay 9 tipos de incidencias, ver en la hoja “Fechas Clave”!K8.) y b) las fórmulas utilizadas para calcular las horas trabajadas a lo largo del año.
Dichas fórmulas ocupan las columnas adyacentes a las de fechas y días de la semana de cada mes. Hay que señalar las columnas y mostrar para ver la de las incidencias, las columnas de horas esta visible.
Por otra parte, he dedicado las celdas “Fechas Clave”!E7:F7, para introducir la fecha inicial y final de la segunda tanda de vacaciones de la empresa.

La modificación.
Es introducir el operador logístico O a la condición que determina que si el día en cuestión pertenece a los rangos de vacaciones de la empresa. Y anidar en ese operador contenedor de dos condiciones del tipo Y >= fecha inicial y <= que la fecha final.
Discriminador inicial:
Y(D10>=vac_ini_1; D10<=vac_fin_1)
Los sustituiremos por:
O(Y(D10>=vac_ini_1; D10<=vac_fin_1);Y(D10>=vac_ini_2; D10<=vac_fin_2))

Las fórmulas.
Por ejemplo en las celda “Plan Año”!F10 para determinar el formato condicional:
=SI(ESNUMERO(D10);
      SI(ESERROR(CONSULTAV(D10;tab_jor_reducida;2;FALSO))=VERDADERO;
      SI(ESERROR(COINCIDIR(D10;festivos;0));
      SI(DIASEM(D10;2)=7;  2; 
      SI(DIASEM(D10;2)=6; 
     SI($N$2;3;0);
     SI(  O(Y(D10>=vac_ini_1; D10<=vac_fin_1);Y(D10>=vac_ini_2; D10<=vac_fin_2));  5;                  SI(ESERROR(COINCIDIR(MAYUSC($T$2)&D10;  MAYUSC(lan_izena)&lan_egun;  0));    SI(Y(D10>=hv_fini;D10<=hv_ffin)
;  7;   8  ); 6))));  4);9);1)
Y en la celda Plan Año”!G10, para determinar las horas trabajadas:
=SI(D10="";0;SI(F10=6;0;
SI(F10=9;CONSULTAV(D10;tab_jor_reducida;2;FALSO);
SI(ESERROR(COINCIDIR(D10;festivos;0));
SI( O( Y(D10>=vac_ini_1; D10<=vac_fin_1);Y(D10>=vac_ini_2; D10<=vac_fin_2));  0;  SI(ESERROR(COINCIDIR(MAYUSC($T$2)&D10;  MAYUSC(lan_izena)&lan_egun;  0));  SI(Y(D10>=hv_fini;D10<=hv_ffin);  INDICE('Fechas clave'!$J$6:$P$6;1;DIASEM(D10;2));   INDICE('Fechas clave'!$J$2:$P$2;1;DIASEM(D10;2))  ); 0));  0))))
Como siempre puedes descargar el modelo en Flashforward-Financiero. 
Y para de contar, para cosas de estas sirven las funciones Y(),O(), etc.
Saludos  y gracias a JB por su comentario, asi mejoramos y progresamos todos.http://flashforward-financiero.es/index.php/fichero-excel/doc_details/25-calendario-2012-jornada-anual-por-trabajador-mejoras-en-la-version-11