Vous êtes sur la page 1sur 5

http://javiermozo-excel-explicado.blogspot.com/2012/06/control-de-asistencia.

html
SZ002 -Control de asistencia TUTO
Vamos a hacer una hoja de control de asistencia para un curso de formacin que se desarrollar los jueves (3 horas) y los viernes (2
horas) desde el 6 de septiembre de 2011 hasta el 30 de mayo de 2012. La aplicacin deber ser lo ms verstil posible adaptndose
automticamente a cualquier circunstancia para que se pueda usar en cursos venideros.
El libro tendr 7 hojas. La hoja "Datos" contendr informacin bsica: inicio y fin de cada una de las tres fases del curso, nmero de
horas que se impartir cada da, das festivos y resumen de las horas impartidas.

La hoja "Primera" tendr una lista de participantes en el curso y espacio para poder anotar las asistencias los das que haya cursillo.

Las hojas "Segunda" y "Tercera" son similares a la hoja "Primera" pero las fechas de las columnas corresponden a cada una de las
siguientes fases del curso. La aplicacin deber crear automticamente las hojas "Primera", "Segunda" y "Tercera", poniendo las
fechas de los encabezados y los bordes de las celdas. Adems, habr otras tres hojas auxiliares: "AuxP", "AuxS" y "AuxT".
En las celdas F7:L7 de la hoja "Datos" ponemos las horas que se van a impartir cada da. En el ejemplo que vamos a desarrollar
habr clase nicamente los jueves (3 horas) y los viernes (2 horas).
Si un da no hay clase, en la celda inferior colocaremos un cero; en caso contrario, un uno. Esto nos servir para hacer clculos ms
adelante.
En F8:
=SI(F7>0;1;0)

[Extender la frmula hasta la celda L8]

Ahora, debemos trabajar con la hoja "AuxP" que nos servir para obtener los datos con los que construiremos la tabla de la
hoja "Primera". Cuando la terminemos, su aspecto ser:

En la fila 2 pondremos todas las fechas comprendidas entre el inicio del curso y una fecha posterior a la terminacin de la primera
parte. Dejaremos un margen suficiente pensando en futuros cursos.
En la fila 3 pondremos cero los das que no haya cursillo y dejaremos los das cuando haya cursillo. Para que se vea mejor,
sustituiremos el formato de fecha por el formato general.
En la fila 4 dejaremos en blanco las celdas con ceros y mantendremos las fechas de las restantes. Aqu usaremos el formato de fecha.
En la fila 5 numeraremos las fechas de la fila 4.
En la fila 6 colocaremos todas las fechas de la fila 4 sin dejar celdas en blanco ayudndonos de la numeracin de la fila 5.
Comencemos a poner las frmulas de la hoja "AuxP".
En C2:
=Datos!D5
Hemos puesto en C2 la fecha de comienzo del curso.
En D2:
=C2+1

[Extender la frmula hasta la celda DM2]

Esto nos garantiza que la primera fase del curso quede dentro de este rango de fechas.
En C3:
=C2*ELEGIR(DIASEM(C2;2);Datos!$F$8;Datos!$G$8;Datos!$H$8;Datos!$I$8;Datos!$J$8;Datos!$K$8;Datos!$L$8) [Extender la
frmula hasta la celda DM3]
Puesto que en la prxima fila nos referiremos a los das festivos de la hoja "Datos", vamos a crear una"nombre" que haga referencia a
esta lista. Ser un "nombre" dinmico ya que la lista de das festivos cambia cada ao y pretendemos hacer una hoja que sirva para
otras ocasiones.
Accedemos a Frmulas + Asignar nombre y creamos el "nombre" Festivos con la siguiente definicin:
Festivos

=DESREF(Datos!$C$15;1;0;CONTARA(Datos!$C$16:$C$200);1)

En C4:
=SI(C3=0;"";SI(ESERROR(COINCIDIR(C3;Festivos;0));C3;"")) [Extender la frmula hasta la celda DM4]

En C5:
=SI(C4="";"";CONTAR($C$4:C4)) [Extender la frmula hasta la celda DM5]
En este momento crearemos otros dos "nombres": DisponiblesP (que har referencia a la fila 4) y OrdenP(que abarcar los datos
de la fila 5).
DisponiblesP

=DESREF(AuxP!$C$4;0;0;1;CONTARA(AuxP!$4:$4)-1)

OrdenP

=DESREF(AuxP!$C$5;0;0;1;CONTARA(AuxP!$5:$5)-1)

En C6:
=INDICE(DisponiblesP;COINCIDIR(COLUMNA()-2;OrdenP)) [Extender la frmula hasta la celda DM6]
Si nos fijamos bien, comprobaremos que en la fila 6 estn contenidos los jueves y viernes (slo los no festivos) de la primera fase del
cursillo. En realidad, la lista se extiende unos cuantos das ms, ya que hemos tenido la precaucin de prever futuros cursos. Cuando
llegamos al 23 de diciembre ya no hay ms jueves o viernes no festivos en la fila 1, por lo que se repite esta fecha (el 29 de diciembre
es el ltimo da, pero es festivo).
Este es el momento de crear la tabla de asistencia de la primera fase del curso.
En la celda D4 de la hoja "Primera" ponemos formato personalizado ddd y escribimos:
=AuxP!C6 [Resultado: jue]
En la celda E4 de la hoja "Primera" volvemos a poner el formato personalizado ddd y escribimos:
=SI(O(AuxP!D6=AuxP!C6;AuxP!D6>Datos!$D$6);"";AuxP!D6) [Resultado: vie]
Extendemos la frmula de la celda E4 hasta DL4.
En la celda D2 ponemos formato personalizado dd y escribimos:
=D4 [Resultado: 08]
En la celda D3 ponemos formato personalizado mmm y escribimos:
=D4 [Resultado: sep]
Extendemos ambas frmulas hasta la columna DL.
En D26:
=SI.ERROR(ELEGIR(DIASEM(D4;2);Datos!$F$7;Datos!$G$7;Datos!$H$7;Datos!$I$7;Datos!$J$7;Datos!$K$7;Datos!$L$7);0)
[Extender la frmula hasta la celda DL26]
Seleccionamos D26:DL26 y ponemos el formato personalizado: #;;
Creamos una celda combinada con B26:C26, ponemos el formato personalizado _)_)"HORAS " *. #.##0_)_)_)y escribimos la frmula:
=SUMA(D26:DL26) [Resultado: 60]
Ahora, usaremos el formato condicional para poner los bordes.
Seleccionamos D5:DL24 y accedemos a Inicio + Formato condicional + Nueva regla. Elegimos Utilice una frmula que determine
las celdas para aplicar formato y ponemos la frmula: =D$2<>"". PulsamosFormato y, en la pestaa Bordes, elegimos Contorno.

El formato debe ser igual en D26:DL26. En las filas 2, 3 y 4 podemos variar ligeramente el formato para eliminar la lnea de separacin
entre las filas 2 y 3. Si ponemos una lnea de puntos entre la 3 y la 4 se leer mejor la fecha.
El ltimo paso en esta hoja ser dejarla preparada para que se imprima correctamente. Establecemos el rea de impresin accediendo
a Diseo de pgina y haciendo clic en el vrtice inferior derecho del grupo.

Se mostrar el cuadro de dilogo Configurar pgina. En la pestaa Pgina, seleccionamos orientacinHorizontal. En Mrgenes,
pondremos 1 cm. en todos excepto en el superior, que pondremos 2 cm. En la pestaa Hoja pondremos B2:AA26 en el apartado rea
de impresin; en el apartado Repetir columnas a la izquierda pondremos $B:$C. Con el ltimo dato le indicamos a Excel que si la
impresin ocupa ms de una hoja, en todas ellas se muestren los nombres de los alumnos.

Pulsando Vista preliminar veremos cmo quedara la hoja si la imprimiramos, pero todava no vamos a hacerlo.
Si en F7:L7 de la hoja "Datos" cambiamos los das en los que se imparte el curso, tendremos que cambiar a mano el rea de
impresin. Pero lo que pretendemos es que se ajuste automticamente sin intervencin del usuario. Veamos cmo podemos
conseguirlo.
Vamos a Frmulas + Administrador de nombres para obtener la lista de "nombres" que hemos creado. Veremos que Excel ha
aadido dos nuevos nombres: rea_de_impresin y Ttulos_a_imprimir. En la columna mbito, nos indica que estos nombres slo
estn vigentes en la hoja "Primera".

Conseguiremos que el rea de impresin se ajuste automticamente sustituyendo el valor del"nombre" rea_de_impresin por una
frmula dinmica. Para ello, seleccionamos rea_de_impresin, pulsamos el botn Editar y sustituimos su valor por el siguiente:
rea_de_impresin

=DESREF(Primera!$B$2;0;0;25;115-CONTAR.SI(Primera!$26:$26;"=0"))

Ya podemos imprimir la hoja.


Las hojas "Segunda" y "Tercera" se construyen de la misma manera.
El ltimo paso consistir en poner las horas de las fases en el rango D10:D13 de la hoja "Datos":
En D10:
=Primera!B26
En D11:
=Segunda!B26
En D12:
=Tercera!B26
En D13:
=SUMA(D10:D12)

Descargar archivo (SZ002-Control_asistencia.xlsx)


Descargar archivo (SZ002-Control_asistencia.xls)

Vous aimerez peut-être aussi