Criar um calendário mensal com a função SEQUENCE no Excel

Como podes usar a função SEQUENCE conjugada com as funções DATEVALUE e WEEKDAY para criar rapidamente um calendário mensal.
Criar um calendário mensal com a função SEQUENCE no Excel

Resumo

A nova função SEQUENCE introduzida no Excel 365 (e disponível na versão standalone do office a partir do Excel 2021) vem simplificar a criação de séries com sequências e introduzir a possibilidade de produzir sequências de forma rápida e simples. Neste artigo vamos mostrar-te como podes usar a função SEQUENCE conjugada com as funções DATEVALUE e WEEKDAY para criar rapidamente um calendário mensal.

Criar uma sequência de datas

Criar uma sequência de datas
Criar a sequência de datas do mês
=SEQUENCE(6;7;DATEVALUE("1/"&C7&"/"&C6)-WEEKDAY(DATEVALUE("1/"&C7&"/"&C6))+1;1)
Começamos por criar em B9 uma linha de título com os sete dias da semana, começando pelo primeiro dia da semana, Domingo. E introduzimos a função SEQUENCE na linha seguinte na célula B10 para gerar uma array com a sequência de datas.

O primeiro e o segundo argumento da função definem o tamanho da array. Vamos definir que a sequência tem seis linhas, que correspondem ao máximo de semanas que um mês pode ter. E sete colunas, correspondentes aos sete dias da semana.
=SEQUENCE(6;
No terceiro argumento da função queremos indicar a data de início da sequência. Mas não sabemos em que dia da semana calha o primeiro dia do mês e não o podemos posicionar como primeiro dia da sequência. Se o fizessemos, todos os meses começariam erradamente ao domingo porque estariamos a posicionar o dia 1 sempre em B10, a primeira célula da série.

Para solucionar este problema entram as funções DATEVALUE e WEEKDAY. Com estas duas funções identificamos o primeiro domingo antes do primeiro dia do mês para que desta forma a sequência, que começa em B10, esteja alinhada correctamente com os dias da semana.

Definimos o primeiro dia do mês (C7) e ano (C6) que estamos a mapear = 01/01/2022 = 44562 com DATEVALUE.
DATEVALUE("1/"&C7&"/"&C6)
Com a função WEEKDAY vamos identificar qual o dia da semana correspondente a este primeiro dia do mês = 01/01/2022 = 7 e subtraímos 44562 - 7 = 44555 = 25/12/2021
-WEEKDAY(DATEVALUE("1/"&C7&"/"&C6))
Acrescentamos um último passo em que somamos 1 ao valor do cálculo anterior = 44555 + 1 = 44556 = 26/12/2021 = para chegarmos ao primeiro domingo antes do dia 1 do mês. Esta será a data de início da sequência.
+1;
Fechado o terceiro argumento da função SEQUENCE, terminamos com o quarto e último argumento em que definimos o intervalo da sequência. Queremos que a sequência incremente um dia a cada registo.
;1)
44562 - 7 + 1 = 44556 = primeira data da sequência do mês de Janeiro de 2022.

Ocultar meses não selecionados

Ocultar meses não selecionados
Ocultar datas de meses não selecionados

Temos agora um quadro com uma sequência de datas a começar em 26/12/2021 e a terminar em 05/02/2022. São seis semanas que atravessam o mês. Mas sabemos que a primeira e a última têm dias de outros meses que não o mês de Janeiro de 2022. Para os ocultar usamos a formatação condicional.

Home > Condional Formatting > New Rule > Use a formula to determine which cells to format

Onde declaramos que se o mês da data em B10 é diferente do mês que estamos a mapear (C7) é aplicada uma determinada formatação. Neste caso vamos formatar com texto branco para que as datas fiquem invisíveis.
=MONTH(B10)<>MONTH(DATEVALUE($C$7 & "1"))

Formatar as células como datas

Formatar as células como datas
Mostrar as células da série como datas

Por último, formatamos o intervalo de células B10:H15 com um formato de data que consideramos mais conveniente. No nosso exemplo formatámos como d para mostrar apenas o dia.

Descargas

Descarrega aqui o ficheiro com o exemplo do artigo para criar um calendário mensal com SEQUENCE