Officefull.es

Excel, word, powerpoint, android

Calendario Perpetuo (Calendar Perpetual) Excel Enero 3, 2009

El calendario Perpetuo nos da acceso al día de la semana de una fecha determinada. En este artículo os mostraremos la manera de realizar un calendario perpetuo en Excel además de conocer el día de la semana[ Lunes, Martes, Miércoles, Jueves, Viernes, Sábado o Domingo ] en fechas anteriores al año 1900 hasta el año 9999.

Desarrollo del Archivo Excel [Calendario Perpetuo] por: Héctor Miguel Orozco Díaz

  • Hoja de Cálculo <<Perpetuo >>
  • Hoja de Cálculo <<Calendario >>
  • Hoja de Cálculo << El Bug de 1900 >>
  • Fuentes

Desarrollo Del Archivo

1 Hoja de cálculo – “El Bug de 1900”

Como ya comentamos en el artículo << Años-Meses-Días >> el “bug de 1900” es heredado de Lotus, ya que hicieron bisiesto el año 1900 y que Microsoft Excel tuvo que realizarlo por motivos de compatibilidad al considerar 1900 como año bisiesto, se inserta/agrega/añade/incrusta/… un día mas… => el día 29/Feb/1900 (mismo que nunca existió) al “incrustar” un día al final de febrero, todos los días previos se mueven un día menos (28/Feb/1900 que era miércoles retrocede al martes) las fechas entre el 01/Ene/1900 y el 28/Feb/1900 son consideradas (y tratadas) como la fecha “del día anterior” (al calendario REAL) a partir del 01/Mar/1900 (obvia y afortunadamente) las fechas no sufren del “desplazamiento” provocado por este error.

Dicho error NO se trasladó en VBA ni al sistema de fechas en Macintosh 1904

Comprobación

Escribimos en una celda una fecha entre 01/01/1900 y 28/02/1900 por ejemplo:

02/01/1900 [ 2 de enero de 1900 ] y dejamos la celda activa

Le damos a las teclas { Alt + F11 } para abrir el editor de Visual Basic de Excel

Ahora desde la interfaz de Visual Basic Excel le damos a las teclas {Ctrl + G } para abrir la ventana inmediato

Ahí escribimos, copiamos, pegamos lo siguiente y le damos a {Enter o Intro} para preguntarle a Vba que día fue la celda activa:

? format(activecell, "dddd")

Nos responderá que fue Lunes, cosa que no fue Cierta ya que no fue Lunes

Dependiendo de la configuración regional de nuestro sistema operativo variara el idioma de respuesta en laVentana Inmediato.

Ahora escribimos lo siguiente para saber de qué fecha estamos hablando:

? format(activecell, "dd/mmm/yyyy")

Nos responderá que es [ 01/01/1900] cuando en nuestra celda activa tenemos [02/01/1900]

Ahora le preguntamos cuál es el día de la semana para [02/01/1900]

? format(#1900/01/02#, "dddd")

Nos dirá que es Martes cosa que que es cierta

Conclusión

Si en Excel ponemos una fecha anterior al [ 01/marzo/1900 ] Excel las “retrasa” en un día (por el agregado del día 29/feb/1900), entonces Vba dice queno que no se traga el cuento y responde con las fechas reales.

2 Hoja de Cálculo Calendario del año 1900 al año 9999

Celda [A1] -> Pondremos el mes que queramos calcular.

Celda [B1] -> Pondremos el año que queramos calcular.

Numero de Semana Excel y Estándar ISO

Calendario Perpetuo (día de la Semana)

Empezando por el [ 0 ] ya que tomamos el primer día de la semana como Cero y no como 1, calculamos los códigos del mes-día-semana >>

  • Gregoriano: (Dia+CodMes+Año+Año / 4 – 2 * (Siglo \ 4)-BisEneFeb)\ 7
  • Juliano: (Dia + CodMes + Año + Año / 4 + 5 – Siglo – BisEneFeb) \ 7

Fórmula:

=INDICE(B$14:B$20,1+RESIDUO(E25+INDICE({5\1\1\4\6\2\4\0\3\5\1\3},F25)
+DERECHA(G25,2)+ENTERO(DERECHA(G25,2)/4)-2*RESIDUO(IZQUIERDA(TEXTO(G25,"0000"),2),4)-Y(O(RESIDUO(G25,400)=0,
Y(RESIDUO(G25,4)=0,RESIDUO(G25,100)<>0)),F25<3),7))

3 Hoja de Cálculo Perpetuo- Calendario Anterior al 1900 – 9999

a !$b$1-(!$a$1<3) b truncar(!$b$1/4-!$b$1/100+!$b$1/400) x truncar((!$b$1-1)/4-(!$b$1-1)/100+(!$b$1-1)/400) y b-x z (y+1)*(!$a$1>2) f max(!$b5:!$h5)+si(!$a$1<3,-1+31*(!$a$1-1),truncar((153*(!$a$1-3)+2)/5+58+y)) g residuo(a+b,7) d residuo(f+g-z,7) n f+3-d s.1 (n<0)*(53-(g-5)/5)+(n>(364+y)) f+1= numero ordinal de la fecha en el año en curso sn truncar(si(s.1,s.1,n/7+1))  

Miraros como está estructurado el archivo, las fórmulas empleadas, así como los formatos y Nombres definidos

Descarga de Archivo

 Calendario perpetuo (1900) (14,6 kB)

Fuentes

Perpetual calendar

http://en.wikipedia.org/wiki/Perpetual_calendar

Calculating the day of the week

http://en.wikipedia.org/wiki/Calculating_the_day_of_the_week

Perpetual Calendar – Weekday computation in your head

http://katzentier.de/_misc/perpetual_calendar.htm

Week number

http://en.wikipedia.org/wiki/Week_number#Week_number

 

Categorías: Sin categoría

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *