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.
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
=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
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
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