Calendario dinámico mensual de Excel.

Calendario dinámico mensual de Excel.

Quiero crear un calendario mensual (1 mes por hoja) donde solo pueda cambiar el año (y por tanto la fecha). Mi plantilla del calendario ya está creada. Todo lo que quiero es agregar una fórmula que cambie la fecha según el día de la semana cuando cambio el año. La semana comienza el domingo.

Gracias !

Respuesta1

Esto es lo que se me ocurrió. Ajuste las instrucciones según sea necesario para que se ajusten a su propia plantilla.


Instrucciones

  1. Establezca A1 en el valor del año del mes que desea representar.
    • Para la fecha de la primera revisión de esta publicación, sería "2015".
  2. Configure A2 con el nombre completo del mes que desea representar.
    • Para la fecha de la primera revisión de esta publicación, sería "mayo".
  3. Complete A3:G3 con los días de la semana, comenzando con "domingo" en A3 y terminando con "sábado" en G3.
  4. Ponga la siguiente fórmula en A4:=IF(WEEKDAY(DATEVALUE(CONCATENATE($A$2," 1, ",$A$1)))=1,1,"")
    • Dependiendo del mes/año, esta fórmula puede devolver un valor en blanco aquí. (Lo será en mayo de 2015). Esto es normal.
  5. Ponga la siguiente fórmula en B4:=IF(A4="",IF(WEEKDAY(DATEVALUE(CONCATENATE($A$2," 1, ",$A$1)))=COLUMNS($A$4:B4),1,""),A4+1)
    • Dependiendo del mes/año, esta fórmula puede devolver un valor en blanco aquí. (Lo será en mayo de 2015). Esto es normal.
  6. Copie la fórmula de B4 en las celdas C4:G4. Excel debería ajustar automáticamente las referencias de celda en la fórmula según sea necesario.
    • En este punto, la fórmula debería evaluarse como "1" en una de las celdas de la fila 4, y cada celda posterior debería devolver un incremento mayor que la celda anterior. Las celdas antes del "1" deben estar en blanco. Para mayo de 2015, debería ver espacios en blanco en A4:E4, "1" en F4 (viernes) y "2" en G4 (sábado)..
  7. Ponga la siguiente fórmula en A5:=IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",G4+1,", ",$A$1))),"",G4+1)
    • El resultado de la fórmula debe ser uno mayor que el valor de G4.
  8. Copie la fórmula en A5 hacia abajo en las celdas A6:A9. Excel debería ajustar automáticamente las referencias de celda en la fórmula según sea necesario.
    • A6:A9 se evaluará como espacios en blanco por ahora. Eso es normal.
  9. Ponga la siguiente fórmula en B5:=IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",A5+1,", ",$A$1))),"",A5+1)
    • El resultado de la fórmula debe ser uno mayor que el valor de A5.
  10. Copie la fórmula en B5 en las celdas C5:G5. Excel debería ajustar automáticamente las referencias de celda en la fórmula según sea necesario.
    • Las fórmulas de la fila 5 ahora deberían evaluarse como un conjunto de números que aumentan incrementalmente desde la columna A hasta la columna G.
  11. Seleccione B5:G5 y copie esas celdas hasta B6:G9. Excel debería ajustar automáticamente las referencias de celda en la fórmula según sea necesario.
    • En este punto, el calendario debería estar correctamente poblado para el mes determinado. Las celdas anteriores al primero del mes y posteriores al último día del mes deben estar en blanco.
    • Durante ciertos meses, como enero de 2015, la fila 9 estará completamente en blanco. Esto es normal.

Funciones

  • CONCATENARune cadenas de texto.
  • VALOR FECHAdevuelve un valor de "número de serie" de Excel para la fecha representada por una cadena de texto. Devolverá un error si la cadena no coincide con un formato de fecha conocido o si la cadena no representa una fecha real (por ejemplo: "32 de enero de 2015" o "29 de febrero de 2015").
  • DÍA LABORABLEDevuelve un valor, del 1 al 7, que representa el día de la semana de una fecha determinada.
  • COLUMNASdevuelve el número de columnas abarcadas por una matriz de celdas especificada.
  • SIle permite devolver un valor elegido (o resultado de fórmula) en función de si una fórmula especificada se evalúa como VERDADERA o FALSA.
  • ESERRORdevuelve VERDADERO si la fórmula dada da como resultado un error, o FALSO si la fórmula no genera un error.

Explicaciones de fórmulas

  • A4reúne información de A1 y A2 para generar una cadena de texto que representa el primer día del mes. (por ejemplo: "1 de mayo de 2015".) Luego, verifica si el día laborable de esa fecha sería el domingo. Devuelve 1 si es domingo, en blanco si no.

  • B4:G4verifique la celda anterior para ver si está en blanco. De lo contrario, devuelve un valor uno superior al de la celda anterior. Si la celda anterior está en blanco, verifica si el día de la semana actual coincide con el primer día del mes dado; devuelve 1 si es así, en blanco si no.

  • A5:A9agregue 1 al valor del final de la fila anterior y luego combine el resultado con información de A1 y A2 para formar una cadena de fecha. Comprueba si la fecha realmente existe. Devuelve el número del día del mes si es así, en blanco si no.

  • B5:G9agregue 1 al valor de la celda anterior, luego combine el resultado con información de A1 y A2 para formar una cadena de fecha. Comprueba si la fecha realmente existe. Devuelve el número del día del mes si es así, en blanco si no.


Captura de pantalla

Ejemplo de resultado de mayo de 2015.

ingrese la descripción de la imagen aquí

Respuesta2

Crear New Workbooka partir de plantilla. Calendar sundaycadena de búsqueda.

Cadena de búsqueda "Calendario domingo"

Seleccionarárea de díasy presione Manage Rulesen Conditional Formattingel menú.

editar el menú de reglas de formato de Excel

AgregarNew Rule

Cuadro de diálogo de formato de regla de Excel

Agregar regla igual=TODAY()

Excel agrega regla de formato igual a "=TODAY()"

Resultado:

Regla de formato de Excel Resultado del calendario

Respuesta3

Escriba estos elementos en las celdas indicadas:

A1: 2015 B1: Primer día C1: =FECHAVALUE(A1&"-"&A2&"-01")
A2: 5 B2: Semana-Domingo C2: =C1-DÍASEMANA(C1;2)

C4: =TEXTO(COLUMNAS($A$4:A4);"Ddd")
C5: =SI(TEXTO($C$2-1+COLUMNAS($A$4:A4)+(FILAS($A$4:A4)-1)*7;"AAAA-MM")=TEXTO($C$1; "AAAA-MM");$C$2-1+COLUMNAS($A$4:A4)+(FILAS($A$4:A4)-1)*7;"")

Luego copie C4 y C5 para llenar siete (7) celdas de ancho.
Seguido de una copia de la fila 7 para completar un total de seis (6) filas.
Seleccione las celdas en estas últimas 6 filas y presione CTRL+ 1, haga clic en Personalizado en el panel izquierdo e ingrese una Dpara el formato personalizado.

El resultado se verá así:

2015 Primer día 2015-05-01              
5 Semana-Domingo 2015-04-26              

Dom LUN Mar MIE JUE VIE SAB
                    1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31                      

Esto funcionará en Excel, LibreOffice y probablemente en cualquier otra hoja de cálculo.

Respuesta4

Linux:

Abra una terminal, luego escriba:

ncal 2015y presione ENTER(cuando $se le indique).

La salida se verá así:

                                  2015
    January           February          March             April             
Su     4 11 18 25     1  8 15 22        1  8 15 22 29        5 12 19 26   
Mo     5 12 19 26     2  9 16 23        2  9 16 23 30        6 13 20 27   
Tu     6 13 20 27     3 10 17 24        3 10 17 24 31        7 14 21 28   
We     7 14 21 28     4 11 18 25        4 11 18 25        1  8 15 22 29   
Th  1  8 15 22 29     5 12 19 26        5 12 19 26        2  9 16 23 30   
Fr  2  9 16 23 30     6 13 20 27        6 13 20 27        3 10 17 24      
Sa  3 10 17 24 31     7 14 21 28        7 14 21 28        4 11 18 25      

    May               June              July              August            
Su     3 10 17 24 31     7 14 21 28        5 12 19 26        2  9 16 23 30
Mo     4 11 18 25     1  8 15 22 29        6 13 20 27        3 10 17 24 31
Tu     5 12 19 26     2  9 16 23 30        7 14 21 28        4 11 18 25   
We     6 13 20 27     3 10 17 24        1  8 15 22 29        5 12 19 26   
Th     7 14 21 28     4 11 18 25        2  9 16 23 30        6 13 20 27   
Fr  1  8 15 22 29     5 12 19 26        3 10 17 24 31        7 14 21 28   
Sa  2  9 16 23 30     6 13 20 27        4 11 18 25        1  8 15 22 29   

    September         October           November          December          
Su     6 13 20 27        4 11 18 25     1  8 15 22 29        6 13 20 27   
Mo     7 14 21 28        5 12 19 26     2  9 16 23 30        7 14 21 28   
Tu  1  8 15 22 29        6 13 20 27     3 10 17 24        1  8 15 22 29   
We  2  9 16 23 30        7 14 21 28     4 11 18 25        2  9 16 23 30   
Th  3 10 17 24        1  8 15 22 29     5 12 19 26        3 10 17 24 31   
Fr  4 11 18 25        2  9 16 23 30     6 13 20 27        4 11 18 25      
Sa  5 12 19 26        3 10 17 24 31     7 14 21 28        5 12 19 26      

... con la fecha actual marcada con un número de "bloque invertido". Copiar y pegar como texto.
La cantidad de trabajo requerido depende de la herramienta que utilice.


editar: Escribir en el indicador del shell Bash;
$ y=2015; for (( i=1 ; i<13 ; i++)) do cal $i $y ; done | sed -re 's/([^ ]+ 2015|[a-zåäö]{2}|[ 0-9]{2} )/"\1",/g' | sed -re 's/"\,[ ]*$/"/' >calendar-$y.csv

Crea un archivo CSV que se puede cargar en cualquier hoja de cálculo. cámbielo y=2015para reflejar el año para el cual desea crear un calendario.

información relacionada