Excellent Acknowledgments Calendar

It is not now to determine a medical examinations calendar (which periodically must never forget to try to be healthy as long as possible), but to show my acknowledgment to the authors of the articles I've been reading this month for the realization of this Perpetual Calendar project.

In several blogs devoted to the Excel world I have known excellent professionals and now I want to express my sincere acknowledgment, starting with:

  • My Acknowledgments Calendar:

Purna Duggirala and his Chandoo.org (BECOME AWESOME IN EXCEL) with whom I shared calendars templates and flags, but above all witty comments and encouragement on his blog and in his article on how to make a perpetual calendar:

2010 Calendar – Excel Template [Downloads]

David McRitchie published in  My Excel Pages the largest collection of Excel functions and macros that I know:

Excel Date and Time Formatting and Functions

Chip Pearson and Pearson Software Consulting, with interesting articles about the date functions in Excel as:

Week Numbers In Excel

Héctor Miguel Orozco Díaz published in his educational Teladearaña.es:

Calendario Perpetuo (Calendar Perpetual) Excel

Martin Green's Office Tips and his free courses:

A Pop-up Calendar for Excel

Jon Wittwer founder of Vertex42 LLC dedicated to publishing high quality spreadsheets:

Free Calendars - Download free printable calendars in PDF format and calendar templates that you can customize using Excel.

G.I Nakodari founder and editor of addictivetips.com who writes about:

Excel 2010 EDATE function

Daniel Ferry is the author of the Excel Hero blog, highly recommended because it enables the calculations become amazing optical illusions:

Live Calendar Musings

Francisco Javier Marco Abián writes the blog on Hojas de Cálculo en Excel  (Excel Spreadsheets) and publishes plenty of practical worksheets:

Calendarios para imprimir

I'm sure I left someone but it is because while building the perpetual calendar I did not keep their references for eternity. It's my fault ;-)

  • Another interesting sites to build calendars:

Excel Calendar Templates

Plantillas de Calendarios Perpetuos

Windows Live Calendar

Google Calendar

  • In acknowledgment to my visitors I'm sharing here another calendar
You can download it by clicking on the next SkyDrive page:

Or you can download a template even easier from here.

It is simpler than the proposed Perpetual Calendar, as summarized in a single spreadsheet that includes the 12 months of the year, starting any month, one selected month with anniversary dates that can be entered from any day and you could choose the color of the anniversary text.

Do you not have Excel 2007 or 2010?
Then download this version in OpenOffice Calc 3, formerly owned by Sun and now Oracle Open Office (formerly Sun StarOffice):

To calculate the week numbers I'm using the following function in Excel 2010, which is not compatible with Excel 2007:

The $E$2 cell indicates whether the week starts on Sunday (3) or Monday (4).
When you start on Monday, the argument is 21 and serves to Europe countries and other with the Gregorian Calendar.

It is not well documented, so I just wrote about this feature in MS Office forums:
Week Numbers in Excel
Implementing Week-Numbering Systems

Passing the compatibility check tells me that the sheet is compatible with Excel 2007, which is not very successful as the argument value 21 does not appear anywhere.

For Excel 2003 and 2007 and OpenOffice Calc can substitute with this calculation:

This was my last Perpetual Calendar update with the help of this forum: AyudaExcel.com that when I uploaded the calendar, one of their members told me politely that the week numbers were not right for Spain, because if not, I had been calculated as in my previous calendars:

I was thinking that had been resolved in MS Excel with the argument 2 for weeks beginning on Monday, but Microsoft has been slow to resolve until 2010 Excel version the week number calculation following the Gregorian calendar and ISO 8601 for Europe:
The week containing the first Thursday of the year is the first week of the year and is numbered as week 1.

  • State of the art from calendars

With the developed calendars here could be scheduled full-day events in the local timezone, which is not far from some major software vendors like Google that warns in its Apps Status Dashboard:

Google Calendar 5/24/10
All times are shown in your local timezone unless otherwise noted.

When it comes to events schedules, this approach is not correct and should be required that the start and end events can be scheduled in different time zones, what some bloggers are denouncing in the relevant Google Calendar forums:

Foro de Ayuda > Calendar > Foro > Zonas Horarias

Help forum > Calendar > Coffee Shop > New in Calendar: Swap time zones

Help forum > Calendar > Feature requests > Per event time zone settings

Help forum > Calendar > Calendar not loading > Easter missing from Christian and Dutch calendar

The latter concerns to there aren't Easter days in the Google Calendar. Does this mean that their engineers have forgotten to do calculations (Computus in Latin)?

In short, in all these articles I tried to show that a proposed user interface can be attacked in various ways, but you should always take into account the recipient of the application and its changing needs, so development will not be terminated while there are users to meet, which makes software development is always a process of continuous improvement in time ...

Blogger lies when he says that creating a blog is easy and only takes a minute. Provide content to a blog or creating a high requirements spreadsheet, some days of dedication are needed, as any expert in Excel or Blogs will tell you. I have dedicated this month to this project that help me to stay active and have in this site some things I cannot find on other sites and that can serve other users like me. Next month I'm going to publish more projects headed to experienced users.

PD: Print a dodecahedron calendar form from this page: 12 sided calendar

Traducción al español aquí.

Calendario de Reconocimientos Excelentes

No se trata ahora de determinar un calendario de reconocimientos médicos (que periódicamente nunca hay que olvidar para intentar estar sano el mayor tiempo posible), sino de mostrar mi reconocimiento a los autores de los artículos que he ido leyendo este mes durante la realización de este proyecto de un Calendario Perpetuo.

En varios blogs dedicados al mundillo Excel he conocido a excelentes profesionales a los que quiero mostrar mi sincera gratitud, empezando por:

  • Mi Calendario de Reconocimientos:

Purna Duggirala y su Chandoo.org (BECOME AWESOME IN EXCEL) con el que he compartido plantillas de calendarios y de banderas, pero sobre todo comentarios ingeniosos y de ánimo en su blog y en su artículo sobre cómo hacer un calendario perpetuo:

2010 Calendar – Excel Template [Downloads]

David McRitchie ha publicado en My Excel Pages la mayor colección de funciones y macros de Excel que conozco:

Excel Date and Time Formatting and Functions

Chip Pearson and Pearson Software Consulting, LLC con sus interesantes artículos acerca de las funciones de fecha en Excel como:

Week Numbers In Excel

Héctor Miguel Orozco Díaz publicó en su Teladearaña.es un didáctico:

Calendario Perpetuo (Calendar Perpetual) Excel

Martin Green's Office Tips y sus cursos gratuitos:

A Pop-up Calendar for Excel

Jon Wittwer fundador de Vertex42 LLC dedicada a publicar hojas de cálculo de alta calidad como:

Free Calendars - Download free printable calendars in PDF format and calendar templates that you can customize using Excel.

G.I Nakodari fundador y redactor jefe de addictivetips.com que escribe sobre:

Excel 2010 EDATE function

Daniel Ferry es el autor de los Excel Hero blogs muy recomendados porque hace posible que los cálculos se conviertan en impresionantes ilusiones ópticas:

Live Calendar Musings

Francisco Javier Marco Abián escribe el blog Hojas de Cálculo en Excel y edita multitud de prácticas hojas de cálculo:

Calendarios para imprimir

Seguro que me dejo algunos pero es debido a que mientras construía el calendario perpetuo no guardé sus referencias para la eternidad. Es un fallo mío ;-)

  • Otros sitios interesantes para construir calendarios:

Excel Calendar Templates

Plantillas de Calendarios Perpetuos

Windows Live Calendar

Google Calendar

  • En agradecimiento a mis visitantes comparto otro calendario
Puedes bajarlo pinchando en Descargar cuando abras la siguiente página de SkyDrive:

O puedes descargar una plantilla aún más sencilla desde aquí.

Es más simple que el proyecto de Calendario Perpetuo, ya que se resume en una sola hoja de cálculo que incluye los 12 meses del año, comenzando por cualquier mes, un mes seleccionable y fechas de aniversario que se pueden introducir desde cualquier día y se puede elegir el color de los textos a presentar.

¿Que no tienes Excel 2007 o 2010?
Pues bájate esta versión en OpenOffice Calc 3, antes propiedad de SUN y ahora de Oracle Open Office (antes era Sun StarOffice):

Para calcular los números de semana uso la siguiente función en Excel 2010, que no es compatible con Excel 2007:

En $E$2 indico si la semana comienza en domingo (3) o lunes (4).
Cuando comienza en lunes, el argumento vale 21 y sirve para Europa y países con el calendario gregoriano.

No está muy documentada, por lo que acabo de escribir acerca de esta función en los foros de MS Office:
Week Numbers in Excel
Implementing Week-Numbering Systems

Pasándole la comprobación de compatibilidad me dice que la hoja es compatible con Excel 2007, lo que no es muy acertado pues el argumento valor 21 no aparece por ninguna parte.

Para Excel 2003 y 2007 y para OpenOffice Calc se puede sustituir por:

Esta ha sido mi penúltima modificación del Calendario Perpetuo gracias a la ayuda del foro: AyudaExcel.com que, cuando subí el calendario, uno de sus miembros me indicó amablemente que los números de semana no eran correctos para España, porque si no, los hubiera calculado como en mis calendarios anteriores:

pensando que ya lo había resuelto MS Excel con el argumento 2 para las semanas que comienzan en lunes, pero Microsoft ha tardado en resolver hasta la versión Excel 2010 como los calcula el calendario gregoriano y la ISO 8601 en Europa:
La semana que contiene el primer jueves del año es la primera semana del año y se numera como semana 1.

  • Estado del arte de los calendarios

Con los calendarios desarrollados aquí se pueden programar eventos de día completo, en la zona horaria local, lo que no está muy alejado de algunos grandes fabricantes de software como Google que avisa en su panel de estado de sus aplicaciones:

Google Calendar 5/24/10
Todas las horas se muestran en tu zona horaria local a menos que se indique lo contrario.

Cuando se trata de eventos horarios, esta aproximación no es correcta y se debe exigir que las horas de comienzo y fin de los eventos puedan programarse en distintas zonas horarias, lo que algunos blogueros estamos denunciando en los foros pertinentes de Google Calendar:

Foro de Ayuda > Calendar > Foro > Zonas Horarias

Help forum > Calendar > Coffee Shop > New in Calendar: Swap time zones

Help forum > Calendar > Feature requests > Per event time zone settings

Help forum > Calendar > Calendar not loading > Easter missing from Christian and Dutch calendar

Este último se refiere a que no aparecen los días de Semana Santa en el calendario de Google, ¿será que sus ingenieros han olvidado hacer cálculos (Computus en latín)?

Resumiendo, en todos estos artículos he pretendido mostrar que un proyecto de interface de usuario se puede atacar de diversas maneras, pero siempre se debe tener en cuenta al destinatario de la aplicación y sus necesidades cambiantes, por lo que un desarrollo no se dará por concluido mientras haya usuarios que satisfacer, lo que hace que el desarrollo de software sea siempre un proceso de mejora continua en el tiempo...

Miente Blogger cuando dice que crear un blog es muy sencillo y sólo te llevará un minuto. Para dotar de contenido un blog o crear una hoja de cálculo con altos requisitos se precisan días de constante dedicación, como cualquier experto en Excel o en Blogs te dirá, y a ésto he dedicado este mes, para estar activo y tener en este sitio lo que no encuentro en otras webs, que puede servirle a otros usuarios como yo. El mes próximo publicaré más proyectos dirigidos a usuarios con experiencia.

P.D.: Imprime un calendario en forma de dodecaedro desde esta página: 12 sided calendar

English translation of this post here.

The Perpetual Calendar spills on the Surface

Anyone who has followed the previous posts will know that it is time that waves go out to the surface since, earlier this month, I planned this Perpetual Calendar project according to the 5 elements to improve the User Experience - UX, we've seen on this blog:
  1. Strategy to follow here
  2. Scope intended here
  3. Structure used here
  4. Skeleton suggested here
  5. Surface recursive here
As mentioned, the result that the user sees is on the visual surface design of the application that interact to achieve the results you want, and we are looking for a Perpetual Calendar in Excel spreadsheets and here is its presentation in society:

Viewing this video you will see that a part of what has been achieved in this calendar has been done without the use of Excel macros knowing that can reach a wider audience, but if that was used all the power of Conditional Formatting - CF of Excel 2010 to make it more useful and striking, I hope I have achieved...

Something very important, that a software programmer should always keep in mind, is the internacionalization (i18n) and localization (L10n) of any software application, which is to say flatly that must be prepared to change easely the user's Native Language Support - NLS. To do this, all calendar cells contains date format, applying the appropriate mask turn into days of the week as Monday or Sunday, or months, like January or December, with the advantage of opening the calendar template in one language, the names of the days of the week or the names of the months of the year appear in that language, either in English, Spanish or Croatian. You only need to change the names of the worksheets and the titles, notes and tags to the user language to have the calendar in his language.

It is easy to test by changing the operating system locale in Windows click Start, Control Panel, click Regional and Language and Regional Options, selecting Croatian language. Now, when you open the Perpetual Calendar, the dates will be in that language. What you don't believe that? Look for yourself:

And the same with the sheets of each month, the mini-calendar and the events, holidays and diary dates. By the way, the Easter Week calculation and another celebration's dates have been included for some countries.

If you like it, you can download this Perpetual Calendar in Excel 2007 from here:

or from this template link: Perpetual Calendar in Excel 2010

I've only shown the tip of the iceberg but, to spill the entire project to the surface, you should analyze by yourself the Excel formats and functions used to make this calendar. I hope it reaches many years or may become a perpetual one...

I know there are many things to improve but why do not you comment about it here?

How to change the fill and text color of the events and diary entries?

I explain in the next video how to change events' colors (dark green) only for Cal sheet:

Now is easy for you to change diary colors (dark blue) in all other sheets (12 months and Mini).

Traducción al español aquí.

El Calendario Perpetuo sale a la Superficie

Quien haya seguido las entradas anteriores sabrá que les toca a las ondas salir a la superficie desde que a primeros de mes planifiqué el proyecto de Calendario Perpetuo según los 5 elementos de mejora de la experiencia del usuario, en inglés User Experience - UX, que hemos visto en este blog:

  1. Estrategia a seguir aquí
  2. Alcance pretendido aquí
  3. Estructura empleada aquí
  4. Esquema sugerido aquí
  5. Superficie recursiva aquí
Como ya se dijo, el resultado que ve el usuario está en la superficie del diseño visual de la aplicación con la que interactua para obtener los resultados que busca y, lo que buscamos es un Calendario Perpetuo en hojas de cálculo Excel y aquí tienes su presentación en sociedad:

Viendo el vídeo verás parte de lo que se ha conseguido en este calendario que se ha hecho sin emplear macros de Excel para que pueda llegar a más público, pero si que se ha usado toda la potencia del Formato Condicional (CF en inglés) de Excel 2007 y 2010 para darle más utilidad y vistosidad, espero haberlo conseguido...

Algo muy importante, que siempre hay que tener en cuenta, es la internacionalización (i18n) y localización (L10n) de cualquier aplicación informática, lo que quiere decir simple y llanamente que ha de estar preparada para cambiar al idioma del usuario con facilidad, o sea, a su soporte de lenguaje nativo (en inglés: Native Language Support - NLS). Para ello, todas las celdas del calendario contienen formato de fechas que, aplicando la máscara adecuada se convierten en días de la semana, como lunes o domingo, o en meses del año, como enero o diciembre, con la ventaja de que al abrir la plantilla del calendario en un idioma, los nombre de los días de la semana o los nombres de los meses del año aparecen en ese idioma, sea inglés, español o croata. Ya sólo hace falta cambiar los nombres de las hojas de cálculo y los títulos, notas y etiquetas al idioma del usuario para tener el calendario en su idioma.

Es fácil hacer la prueba cambiando la configuración regional del sistema operativo, en Windows pulsa en Inicio, Panel de control, Configuración regional y de idioma y, en Opciones regionales selecciona el Croata. Ahora, al abrir el Calendario Perpetuo, se verán las fechas en ese idioma. ¿Que no te lo crees? Míralo por tí mismo:

Y lo mismo con las hojas de cada mes, con el mini-calendario y con las fechas de los eventos, fiestas y el diario. Por cierto, se ha incluido el cálculo de los días de la Semana Santa y de celebración de varios países.

Si te ha gustado puedes bajarte el Calendario Perpetuo en Excel 2007 desde aquí:

o desde este enlace de plantillas: Calendario Perpetuo en Excel 2010

Solo te he mostrado la punta del iceberg pero, para que salga todo el proyecto a la superficie, deberás analizar por tu cuenta las funciones y formatos de Excel empleados en este calendario, que espero que alcance muchos años o llegue a ser perpetuo...

Yo se que hay muchas cosas que mejorar pero quiero que me las comentes tú.
English translation of this post here.

Skeleton of the Perpetual Calendar

Continuing the expansion of the waves in this blog, the skeleton will determine the place of user interface elements in a computer application and will be designed for optimal, effective and efficient use for the desired objective, that is not to extend this project until becoming skeletons.

The skeleton design should cover three different designs:
- Interface Design and its components that allow users to do things, such as buttons, input fields, etc.
- Navigation Design through the application information and the various worksheets in the calendar.
- Information Design to be complete, easily accessible and user friendly.

This is the outline of design for the Perpetual Calendar project, bearing in mind that the best design is one that is based on these three design aspects. Also you must use the same conceptual model in the entire application to be consistent and have a easy learning curve for users.

Skeleton Design of the Perpetual Calendar

  • Interface Design

1) To enter the year, the annual calendar has a drop-down list from 1900 to 9999, making it easy to change from year to see another calendar.

In a hidden worksheet called Years,
will create a drop-down list of 8100 rows with all years and origin
as seen in this screenshot.

Of course you can type directly into the cell the desired year.

2) In the Holidays worsheet you can select the country with their celebration dates by a drop-down list of countries.

The list can be edited on the same Holidays worksheet, in rows 58-87 of the first column as the origin:

3) To move around the 17 calendar sheets have been chosen the following colors: light blue for the annual calendar, dark blue for the day, red for the holidays, green for the events, yellow for the 12 months sheets and blue for the mini-calendar.

To go to a worksheet you click on one of the tabs above, you can edit to change the name of the months without affecting the calculations. The following is an example of what not to do:

2010 Calendar – Excel Template [Downloads] by Chandoo.org

Because the individual months are calculated from the month name written on the tab, making it impossible to change that label to translate, eg "Jan" to "January" or to Spanish "Enero".

4) Any time you can change the calendar so the week starts on Sunday or Monday, and you can even show twice on Sunday (left and right) and hide on Saturdays and/or Sundays to show the working week, from Monday to Friday.

As shown in the image on the left, check it with a mark value to 1 on Saturdays or Sundays as visible.

Checking with a value 0 is marked as invisible.

This is achieved through a custom cell format type:
representing a value of 0 as the letter "r" and a value of 1 as the letter "a", being the Webdings font which display checked and unchecked marks.

Another way to create cells to select or deselect actions can be viewed at:

How to get tick marks in Excel? [custom cell formatting] by Chandoo.org

Editing a conditional formatting rule, which uses a formula to determine the cells to format, you can hide or show on Saturdays and Sundays.

The custom cell format type must be made with 4 semicolons ;;;; (when the formula is true is made invisible, when it is false are visible)

5) In the three worksheets of Holidays, Daily and Events has been used the same technique to select or deselect the dates you want to make visible or invisible.

  • Navigation Design

1) The navigation between worksheets are done with hyperlinks in Excel:

From the sheet with the calendar year may go to other sheets, simply clicking on the hyperlink marked in blue and underlined as usual. For example, to go to the month of January, click on the name of that month.

From spreadsheets of the Holidays, Diary and Events can go back to the yearly calendar by clicking on the year number.

In the 12 sheets of each month, if you click on the name of the month, go to the mini-calendar and, if you click on the year, go to the yearly calendar.

In the mini-calendar, if you click on the year number, go to the yearly calendar, if you click on one of the month name, you are going to this month sheet.

  • Design Information

1) In all calendars shows year, month, weekdays, Saturdays and Sundays, today in yellow, holidays in red, events in green and calendar diary in blue, as you can see on this prototype of a mini-calendar:

In this and other calendars you can hide both Saturdays and Sundays, as explained above.

As planned, in the next issue will surface (such as oil spill) the outcome of the project...
Traducción al español aquí.

Esquema de un Calendario Perpetuo

Continuando con la expansión de las ondas en este blog, el esquema determinará el lugar que ocupan los elementos del interfaz de usuario en una aplicación informática y será diseñado para un uso óptimo, efectivo y eficiente para el objetivo deseado.

El diseño del esquema deberá contemplar tres diseños diferentes:
- Diseño del interfaz y sus componentes que permiten al usuario hacer cosas, como los botones, campos de introducción de datos, etc.
- Diseño de la navegación por la información de la aplicación y por las distintas hojas de cálculo del calendario.
- Diseño de la información para que sea completa, fácilmente asequible y amigable al usuario.

Se trata de diseñar el esquema del proyecto de Calendario Perpetuo, teniendo siempre en cuenta que el mejor diseño es el que está basado en esos tres aspectos del diseño. Además se debe usar el mismo modelo conceptual en toda la aplicación para que sea consistente y tenga una curva de aprendizaje poco pronunciada para los usuarios.

Esquema de diseño del Calendario Perpetuo

  • El Diseño del Interfaz

1) Para introducir el año en el calendario anual se dispone de un lista desplegable desde 1900 hasta 9999, por lo que es fácil cambiar de año para ver otro calendario.

En una hoja de cálculo oculta, denominada Años,
se creará una lista desplegable de 8100 filas con todos los años y con origen
como se ve en esta captura.

Por supuesto que se puede teclear directamente en dicha celda el año deseado.

2) En la hoja de Fiestas se puede seleccionar el país con sus fechas de celebración mediante un desplegable con las listas de los países.

La lista se puede editar en la misma hoja de Fiestas, en las filas 58 a 87 de la primera columna como origen:

3) Para moverse por cada una de las 17 hojas del calendario se han elegido los colores que las representan: azul claro para el calendario anual; azul oscuro para el diario; rojo para las fiestas; verde para los eventos; amarillo para las hojas de los 12 meses y azul para el mini-calendario.

Para cambiar de hoja se pulsa sobre una de las pestañas anteriores, que se pueden editar para cambiar el nombre de los meses sin afectar a los cálculos.  El siguiente es un ejemplo de lo que no se debe hacer:

2010 Calendar – Excel Template [Downloads] by Chandoo.org

Porque los meses individuales se calculan a partir del nombre del mes escrito en la pestaña, lo que impide modificar esa etiqueta para traducirla, por ejemplo de "Ene" a "Enero" o en inglés a "Jan".

4) En cualquier momento se puede modificar el calendario para que la semana comience en domingo o en lunes, e incluso se puede mostrar dos veces el domingo (por la izquierda y por la derecha) y ocultar los sábados y/o domingos para mostrar la semana laboral de lunes a viernes.

Como se ve en la imagen de la izquierda, chequeando con un valor a 1 se marcan los sábados o domingos como visibles.

Chequeando con un valor a 0 se marcan como invisibles.

Esto se consigue mediante un formato de celdas personalizado del tipo:
que representa un valor 0 como la letra "r" y un valor 1 como la letra "a", siendo el tipo de fuente Webdings que visualizan las marcas de chequeo y unchequeo.

Otra manera de crear celdas para marcar o desmarcar acciones se puede ver en:

How to get tick marks in Excel? [custom cell formatting] by Chandoo.org

Editando una regla de formato condicional, que utilice una fórmula que determine las celdas para aplicar formato, se puede ocultar o mostrar los sábados y domingos.

El formato de celdas personalizado debe ser del tipo 4 puntos y comas seguidos ;;;; (cuando la fórmula es cierta se hacen invisibles, cuando es falsa se hacen visibles)

5) En las 3 hojas de Fiestas, Agenda y Eventos se emplea la misma técnica para marcar o desmarcar las fechas que se quieran hacer visibles o invisibles.

  • El Diseño de la Navegación

1) La navegación entre las hojas de cálculo se hace con los hipervínculos de Excel:

Desde la hoja con el calendario anual se puede ir al resto de hojas, simplemente pinchando en el hipervínculo marcado en azul y subrayado como es habitual.  Por ejemplo, para ir al mes de enero, se pincha en el nombre de ese mes.

Desde las hojas de cálculo de las Fiestas, Agenda y Eventos se puede volver al calendario anual pinchando en el número del año.

En las 12 hojas de cada uno de los meses, si se pincha en el nombre del mes se va al mini-calendario, si se pincha en el año se va al calendario anual.

En el mini-calendario, si se pincha en el año se va al calendario anual, si se pincha en uno de los meses se va al calendario de ese mes.

  • El Diseño de la Información

1) En todos los calendarios se muestra el año, los meses, los días de la semana, los sábados y domingos, el día de hoy en amarillo, los días de  fiesta en rojo, los eventos en verde y las citas de la agenda en azul, como se puede ver en el prototipo del mini-calendario:

En este y en los demás calendarios se pueden ocultar tanto los sábados como los domingos, como ya se ha explicado anteriormente.

Según estaba planificado, en la próxima entrega saldrá a la superficie (como el chapapote) el resultado del proyecto...
English translation of this post here.

The Perpetual Calendar Structure

To understand us, both users and programmers, we should speak the same language to manipulate of information.

To manipulate the databases we use the Structured Query Language - SQL, although we are not aware of it because the sentences are embedded within the application that interacts with databases but, to define the structure of a program or application, we have not defined a common language with the users.

Our software engineers create the Information Arquitecture by means of modeling techniques, own dictionaries and languages that do not share with users such as:
- Data Flow Diagramas - DFD
- Logical Data Model - LDM by means of high-level conceptual schemes.
- Data Dictionaries - DD as sets of metadata in a Data Base - DB.

To visualize, specify, build and document a software application, programmers we understand the graphic language modeling software systems currently most known and used, the Unified Modeling Language - UML based on 13 different types of diagrams classified into 3 categories:
- Structure Diagrams: classes, components, objects, composite, deployment, packages.
- Behavior Diagrams: activities, use cases, estates.
- Interaction Diagrams: sequence, communication, interaction, timing.

The problem is that UML lacks a precise semantics, so it is not objective and can result in different interpretations for different users. Another factor is the lack of components to define persistence of a remote application or a distributed system. But the worst thing is the freedom to use any of the 13 types of diagrams, while we are not superstitious. Always we are going to use the least appropriate following our common sense...

To facilitate Interactive Design is best to decide by the behavior diagrams such as use case diagrams and state diagrams that leave no doubt about the interaction with users and can show to take joint decisions concerning the structured design plan for a Perpetual Calendar in Excel:

As you can see, in this Use Case Diagram coexist different types of users, from commercial or secretary to controller or practical people, from customers to workers and unemployed people. Everyone wants to know how they will be his coming days, months or years (some nostalgic look past years) and some will try to keep the present in their own diaries.

If you don't mind my asking, what type of user you are and what language you communicate with?
Traducción al español aquí.

La Estructura del Calendario Perpetuo

Para entendernos, tanto los usuarios como los programadores, deberíamos hablar un mismo lenguaje de manipulación de la información.

Para manipular las bases de datos usamos el Lenguaje Estructurado de Consultas - SQL (en inglés, Structured Query Language), aunque no seamos conscientes de ello porque las sentencias están incrustadas dentro de la aplicación que interactua con las bases de datos, pero para definir la estructura de un programa o de una aplicación no hemos definido un lenguaje común con los usuarios.

Los ingenieros de software creamos la Arquitectura de la Información mediante técnicas de modelado, diccionarios y lenguajes propios que no compartimos con los usuarios como son:
- Diagramas de Flujo de Datos - DFD
- Modelo de Datos Lógicos (en inglés, Logical Data Model - LDM) mediante esquemas conceptuales de alto nivel (SAM o HDM)
- Diccionarios de Datos - DD como conjuntos de metadatos en una Base de Datos - BD.

Para visualizar, especificar, construir y documentar una aplicación informática nos entendemos con los programadores en el lenguaje gráfico de modelado de sistemas de software más conocido y utilizado actualmente, el Lenguaje Unificado de Modelado - UML (en inglés, Unified Modeling Language) que se basa en 13 tipos diferentes de diagramas clasificados en 3 categorías:
- Diagramas de Estructura: clases, componentes, objetos, compuesta, despliegue, paquetes.
- Diagramas de Comportamiento: actividades, casos de uso, estados.
- Diagramas de Interacción: secuencia, comunicación, colaboración, tiempos, vistas.

El problema es que UML carece de una semántica precisa, por lo que no es objetivo y puede provocar interpretaciones distintas para distintos usuarios. Otro factor es su falta de definición de componentes persistentes en aplicaciones remotas y sistemas distribuidos. Pero lo peor es la libertad para emplear cualquiera de los 13 tipos de diagramas, aún no siendo supersticiosos. Siempre se empleará el menos apropiado siguiendo el sentido común...

Para facilitar un Diseño Interactivo es mejor decidirse por los Diagramas de Comportamiento, como los diagramas de casos de uso y los diagramas de estados que no dejan lugar a dudas sobre la interacción con los usuarios y se les puede mostrar para tomar decisiones conjuntas referentes al diseño estructurado del proyecto de un Calendario Perpetuo en Excel:

Como se puede ver en este Diagrama de Casos de Uso, coexisten diversos tipos de usuarios, desde el comercial o el secretario a la gente práctica o controladora, desde los clientes de todo tipo a los trabajadores y parados. Todos quieren saber cómo van a ser sus próximos días, meses o años (algunos nostálgicos mirarán los años pasados) y algunos intentarán seguir el presente en sus diarios.

Si no es indiscrección, ¿qué tipo de usuario eres tú y en qué lenguaje te comunicas?
English translation of this post here.

Scope of the Perpetual Calendar Project

In the last article I showed you the skeleton must have a perpetual calendar with minimum performance requirements in order to show the months of any year.

You know "How to make a calendar in Excel" here.

Now it comes to defining the scope of this project (in the image the projector scope by references), defining the features and functions to incorporate into our implementation of a Perpetual Calendar in Excel. The more functional specifications, the more ambitious is the project and most costly in time and cost, despite the redundancy.

If not well defined scope at the beginning of the project we run the risk of occurrence of a scope creep or deviation from the scope due to lousy exchange controls, poor identification of the initial objetives, weak project management, poor communication between developers (the latter is difficult if one is only oneself) or a set of them all.

I like to refer to this syndrome as the kitchen sink syndrome, to warn that if the scope of the project we get out of hand, is like throwing all the resources we use to the drain kitchen sink, or perhaps the program does not seem to follow the recipes of the cooks to get a good menu ...

We will not define here a Work Breakdown Structure - WBS as said before, as there isn't a development team, another day will be, but we're going to define here the scope of this project, summarized in the requirements, the following functional features and specifications:

Perpetual Calendar Project

1. Features common to all calendar sheets
1.1. Encode all dates in internal numeric date format
1.2. Enter the calendar year from a single cell
1.3. Highlight days of the week with appropriate color
1.4. Highlight colors on Saturdays and Sundays
1.5. Allow write notes in the calendar
1.6. Linking with other sheets through the months
1.7. Automatically translate month names
1.8. Automatically translate week days names

2. Features of the perpetual year calendar
2.1. Select a year from 1900 to 9999
2.2. Automatically generate 12 months of the year
2.3. Show the month number
2.4. Show the day of the week number
2.5. Start the week on Sunday or Monday
2.6. Show Sundays at the beginning and/or end of the week
2.7. Hide Saturdays and Sundays independently
2.8. Highlight diary entries in blue
2.9. Highlight holidays in red
2.10. Highlight events in green
2.11. Highlight today in yellow

3. Features of the monthly calendar
3.1. Show the day of the week number
3.2. Start the week on Sunday or Monday
3.3. Show Sundays at the beginning and/or end of the week
3.4. Hide Saturdays and Sundays independently
3.5. Highlight diary entries in blue
3.6. Highlight holidays in red
3.7. Highlight events in green
3.8. Highlight today in yellow
3.9. Show a photo of the before and after month

4. Features of the year mini-calendar
4.1. Hide Saturdays and Sundays independently
4.2. Highlight diary entries in blue
4.3. Highlight holidays in red
4.4. Highlight events in green
4.5. Highlight today in yellow

5. Features of the programmable diary
5.1. Enter 50 diary entries (expandable)
5.2. Enter diary entry name
5.3. Enter date in blue
5.4. Mark the visibility of the individual entry
5.5. Mark the visibility of all entries

6. Features of the programmable holidays
6.1. Enter 50 holiday entries (expandable)
6.2. Mark the visibility of today in yellow
6.3. Mark the visibility of holidays individually
6.4. Mark the visibility of all holidays
6.5. Select holidays from a drop-down country list
6.6. Enter the most important holidays in Spain, USA and India
6.7. Enter country, holiday, celebration and translated date
6.8. Calculate the exact holidays for different years (see Easter Week)

7. Features of the programmable events
7.1. Enter 150 event entries as World Days (expandable)
7.2. Mark the visibility of events individually
7.3. Mark the visibility of all events
7.4. Enter event name and date
7.5. Calculate the exact event date (see Valentine's Day)

8. Create the programmable Perpetual Calendar in 17 Excel spreadsheets
8.1. Create 1 sheet with 12 months of the year
8.2. Create 12 sheets with each of the months
8.3. Create 1 sheet with the mini-calendar
8.4. Create 1 sheet with the programmable diary entries
8.5. Create 1 sheet with the programmable holidays
8.6. Create 1 sheet with the programmable events

In the beginning I was to represent this structure as a Work Breakdown Structure (WBS) with the program Microsoft Visio 2010 Beta which I installed for free but, see where, from what I've seen is only possible to install in previous versions, so the interactive graphical representation and the automation with Microsoft Project 2010 is for later.

A total of 57 functional specifications to be met for this first version of the Perpetual Calendar. Do you seem too? Would you add or take away any of them? What would you prefer? Are you eager to see the results of the project?
Traducción al español aquí.

Alcance del proyecto de Calendario Perpetuo

En el anterior artículo mostré el esqueleto que debe tener un calendario perpetuo con unas prestaciones mínimas para poder mostrar los meses de cualquier año.

Puedes saber "Como hacer un calendario en Excel" aquí.

Ahora se trata de definir el alcance de este proyecto (en la imagen el alcance de un proyectil por referencias), definiendo las características y funciones a incorporar a nuestra aplicación de un Calendario Perpetuo en Excel. Cuantas más especificaciones funcionales haya, más ambicioso será el proyecto y más costoso en tiempo y coste, valga la redundancia.

Si no se define bien el alcance al principio del proyecto corremos el riesgo de que ocurra un Arrastramiento o Desviación del alcance (Scope creep en inglés) debido a pésimos controles de los cambios, mala identificación de los objetivos iniciales, floja gestión del proyecto, mala comunicación entre los desarrolladores (esto último es difícil si solo es uno mismo) o un conjunto de todos ellos.

A mí me gusta referirme a este síndrome como el Síndrome del lavadero, en inglés Kitchen sink syndrome, para avisar que si el alcance del proyecto se nos va de las manos, es como tirar todos los recursos que empleemos por el desagüe del fregadero de la cocina, o acaso la programación no se parece a seguir las recetas de los cocineros para conseguir un buen menú...

Aquí no vamos a definir una Estructura de Descomposición del Trabajo - EDT por lo dicho, ya que no hay un equipo de desarrollo, otro día será, pero si el alcance de este proyecto, que se resume en los requisitos, características y especificaciones funcionales siguientes:

Proyecto de un Calendario Perpetuo

1. Características comunes a todas las hojas del calendario
1.1. Codificar todas las fechas en formato numérico interno de fecha
1.2. Introducir el año del calendario desde una única celda
1.3. Resaltar con colores apropiados los días de la semana
1.4. Resaltar con colores los sábados y los domingos
1.5. Permitir escribir notas en el calendario
1.6. Enlazar unas hojas con otras mediante los meses
1.7. Traducir automáticamente los nombres de los meses
1.8. Traducir automáticamente los días de la semana

2. Características del calendario perpetuo de un año
2.1. Seleccionar con un desplegable el año desde 1900 a 9999
2.2. Generar automáticamente los 12 meses del año
2.3. Mostrar el número del mes
2.4. Mostrar el número de la semana
2.5. Comenzar la semana en domingo o lunes
2.6. Mostrar el domingo al principio y/o al fin de la semana
2.7. Ocultar los sábados y los domingos independientemente
2.8. Resaltar las entradas en el diario en color azul
2.9. Resaltar las fiestas en color rojo
2.10. Resaltar los eventos en color verde
2.11. Resaltar hoy en color amarillo

3. Características del calendario de cada mes
3.1. Mostrar el número de la semana
3.2. Comenzar la semana en domingo o lunes
3.3. Mostrar el domingo al principio y/o al fin de la semana
3.4. Ocultar los sábados y los domingos independientemente
3.5. Resaltar las entradas en el diario en color azul
3.6. Resaltar las fiestas en color rojo
3.7. Resaltar los eventos en color verde
3.8. Resaltar hoy en color amarillo
3.9. Mostrar una foto del mes anterior y posterior

4. Características del mini-calendario de un año
4.1. Ocultar los sábados y los domingos independientemente
4.2. Resaltar las entradas en el diario en color azul
4.3. Resaltar las fiestas en color rojo
4.4. Resaltar los eventos en color verde
4.5. Resaltar hoy en color amarillo

5. Características del diario programable
5.1. Introducir 50 entradas en el diario (ampliable)
5.2. Introducir nombre de la entrada
5.3. Introducir la fecha en color azul
5.4. Programar la visibilidad de la entrada individualmente
5.5. Programar la visibilidad de todas las entradas

6. Características de las fiestas programables
6.1. Introducir 50 entradas para las fiestas (ampliable)
6.2. Programar la visibilidad de hoy con color amarillo
6.3. Programar la visibilidad de las fiestas individualmente
6.4. Programar la visibilidad de todas las fiestas
6.5. Seleccionar con un desplegable las fiestas de un país
6.6. Introducir las fiestas más importantes de España, USA e India
6.7. Introducir país, fiesta, fecha de celebración y fecha traducida
6.8. Calcular los días de fiesta exactos para distintos años (ver Semana Santa)

7. Características de los eventos programables
7.1. Introducir 150 entradas de eventos como Días Mundiales
7.2. Programar la visibilidad de los eventos individualmente
7.3. Programar la visibilidad de todos los eventos
7.4. Introducir el nombre del evento y su fecha
7.5. Calcular la fecha del evento exacta (ver Día de San Valentín)

8. Crear el Calendario Perpetuo programable en 17 hojas de Excel
8.1. Crear 1 hoja con los 12 meses del año
8.2. Crear 12 hojas con cada uno de los meses
8.3. Crear 1 hoja con el mini-calendario
8.4. Crear 1 hoja con las entradas del diario programables
8.5. Crear 1 hoja con las fiestas programables
8.6. Crear 1 hoja con los eventos programables

En un principio iba a representar esta estructura mediante un Work Breakdown Structure (WBS) con el programa Microsoft Visio 2010 Beta que me instalé gratuitamente pero, mira por donde, por lo que he visto sólo es posible instalarla en versiones anteriores, por lo que la representación gráfica interactiva y automatizable con Microsoft Project 2010 queda para más adelante.

En total son 57 especificaciones funcionales que habrá que cumplir para esta primera versión del Calendario Perpetuo. ¿Te parecen muchas? ¿Añadirías o quitarías alguna? ¿Cuáles te parecen más interesantes? ¿Estás impaciente por ver los resultados del proyecto?
English translation of this post here.

How to make an Excel calendar

To make it easy, I have prepared a video showing how to make a calendar in Excel. I used the latest version of Microsoft Office Excel 2010 Beta because it is free until October and is the one I have installed on my computer, but you can do it with any previous version.

It should be noted that this calendar is not as easy as those found in many pages of Excel tips because I used the logic of the date functions to represent the days optimally and easily reproducible once generated template of a particular month. It's about doing the calendar of any month, with the functions provided in Excel, changing the year and month's number to build the desired Gregorian month of any year.

IMPORTANT: The most enhanced feature that I have considered doing this calendar is that each day of the month is represented as an internal date number in Excel format, allowing you to play with the days of many possible ways, to compare them with other dates and visualized as month days (1, 2, .. 28, 29, 30, 31), days of the week (Monday, Tuesday, ..), month (January, February, ..) appearing in the language of the local configuration of the operating system of your computer.

NOTE: The representation of dates in Excel goes from number 1 by January 1, 1900, to number 2,958,465 by 31 December 9999 (Try entering 9999 as the year and 12 as the month to see what happens with the following months)

One of the improvements in 2007 and 2010 versions of Excel are the characteristics of conditional formatting, selecting the colors of the calendar, as seen in the last minutes of the video I prepared:

Except conditional formatting, the rest of the video can be followed with other computer programs such as OpenOffice Calc, that is free.
The formulas are written in English, which should not be an impediment to interpret or transform them to your language. I recommend you download the spreadsheet and open the calendar with the Office 2007 or 2010 program to see the formulas in your language. Download it with the link to the left.

If you open the calendar with Excel 2003 or earlier or OpenOffice Calc, you will not see in color because these versions do not support conditional formatting used, but is easy to add the colors you want easily.

In OpenOffice appears the 504 error in the calculation of the numbers of weeks. I leave for you to change given that the function used WEEKNUM_ADD(Date; ReturnType) designed to calculate exactly like Microsoft Excel, and not as estimated at ISO 8601, for which the function uses WEEKNUM(Number; Mode).

ATTENTION: Write the value of Mode and ReturnType to 1 (default value in Excel) or 2, depending on your calendar week starts on Sunday or Monday, respectively.

The following table shows the Excel date functions used to make the calendar:

DATE()FECHA()Calc the internal date value.
EDATE()FECHA.MES()Calc the internal date value before or after some months.
MONTH()MES()Month number of a date.
WEEKNUM()NUM.DE.SEMANA()Week number of a date.
WEEKDAY()DIASEM()Returns the day of the week as an integer (1-7).
EOMONTH()FIN.MES()Returns the last day of the month.

Don't have or want to install Excel or OpenOffice on your computer?
Well, no problem. If your PC has no memory, disk or power, you can practice for free with spreadsheets.

Where I can see and edit the calendar without download it to my PC?
The answer is in the clouds.

What are you talking about clouds?
About the Google Docs spreadsheets like this:

Click on the link below to view full screen:
How to make an Excel calendar

With what we already do not have to leave this blog to see the formulas and functions of this calendar, but suffers from the same errors mentioned for OpenOffice Calc, you can overcome if you want.

Why not create a copy of the calendar now?
Click on the menu: Archive y Create a copy...

Now you can customize your own calendar in the cloud and share it with everyone!

This has been an advance of the proposed Perpetual Calendar that you can read in future articles. If you like this, let me know posting a comment.
Traducción al español aquí.

Como hacer un calendario en Excel

Para que sea fácil, he preparado un vídeo indicando cómo hacer un calendario en Excel. He usado la última versión de Microsoft Office Excel 2010 Beta porque es gratuita hasta octubre y es la que tengo instalada en mi ordenador, pero se puede hacer con alguna versión anterior.

Se debe advertir que no es un calendario sencillo como los que se encuentran en muchas páginas de trucos para Excel sino que usa la lógica de las funciones de fechas para representar los días del mes de una forma óptima y fácilmente reproducible una vez generada la plantilla de un mes concreto. Se trata de hacer el calendario de un mes cualquiera con las funciones suministradas en Excel para que, cambiando el número del año y del mes, se pueda construir el mes gregoriano deseado de cualquier año.

IMPORTANTE: La característica más destacada que me he planteado al hacer este calendario es que cada uno de los días del mes sea representado como un número interno del formato de fechas de Excel, lo que permite jugar con los días de muchas maneras posibles, compararlas con otras fechas del calendario y representarlas gráficamente como días del mes (1, 2, .. 28, 29, 30, 31), días de la semana (lunes, martes, ..), mes del año (enero, febrero, ..) apareciendo en el idioma de la configuración regional del sistema operativo de nuestro ordenador.

NOTA: La representación de las fechas en Excel va desde el número 1, para el 1 de enero de 1900, hasta el número 2.958.465 para el 31 de diciembre de 9999 (Prueba a introducir 9999 como año y 12 como mes para ver qué pasa con los siguientes meses)

Una de las mejoras de las versiones 2007 y 2010 de Excel son las características de formato condicional, seleccionando los colores del calendario, como se puede ver en los últimos minutos del vídeo:

Excepto el formato condicional, el resto del vídeo se puede seguir con otros programas de cálculo, como OpenOffice Calc que es gratuito.
Recomiendo descargarse la hoja creada al hacer el calendario y abrirlo con el programa de Office 2007 o 2010 para poder ver las fórmulas en tu idioma. Bájatelo con el enlace de la izquierda.

Si abres el calendario con Excel 2003 o anterior o con OpenOffice Calc, no lo verás en color porque estas versiones no soportan el formato condicional usado, pero es fácil añadirle los colores que se deseen fácilmente.

En OpenOffice se produce un error 504 en el cálculo de los números de semana, lo que dejo para que lo cambies teniendo en cuenta que emplea la función WEEKNUM_ADD(Date; ReturnType) diseñada para calcularlos exactamente como lo hace Microsoft Excel, y no como se calculan en ISO 8601, para lo que emplea la función WEEKNUM(Number; Mode).

ATENCIÓN: Escribe el valor de Mode y ReturnType a 1 (valor por defecto en Excel) o 2, según la semana de tu calendario comience en domingo o en lunes, respectivamente.

La siguiente tabla muestra las funciones de fecha de Excel empleadas para hacer el calendario:

DATE()FECHA()Calcula el valor interno de una fecha.
EDATE()FECHA.MES()Calcula el valor interno de una fecha antes o despues de un número de meses.
MONTH()MES()Número de mes de una fecha.
WEEKNUM()NUM.DE.SEMANA()Número de semana de una fecha.
WEEKDAY()DIASEM()Número de día de una fecha.
EOMONTH()FIN.MES()Devuelve el último día del mes.

¿Que no tienes o no quieres instalar Excel ni OpenOffice en tu ordenador?
Pues no hay problema. Si tu PC no tiene memoria, disco o potencia puedes practicar gratis con las hojas de cálculo.

¿Dónde puedo ver y editar el calendario sin bajármelo a mi PC?
La respuesta está en las nubes.

¿De qué nubes hablas?
Del servicio Google Docs y sus hojas de cálculo como ésta:

Pulsa en el siguiente enlace para verla a pantalla completa:
Como hacer un calendario en Excel

Con lo que ya no hace falta que salgas de este blog para ver las fórmulas y funciones de este calendario, aunque adolece de los mismos errores comentados para OpenOffice Calc y que puedes subsanar si quieres.

¿Por qué no creas ahora una copia del calendario?
Pulsa en el menú: Archivo y Crear una copia...

Ahora ya puedes modificar tu propio calendario en la nube ¡y compartirlo con todo el mundo!

Este ha sido un anticipo del proyecto de Calendario Perpetuo, que podrás leer en próximos artículos. Si te ha gustado dímelo escribiéndome un comentario.
English translation of this post here.

Mi Lista de Blogs- My Blog List