Nota: Este exemplo assume que a data de início será fornecida como o primeiro do mês. Veja abaixo uma fórmula que retornará dinamicamente no primeiro dia do mês atual.
com o layout da grade como mostrado, o problema principal é calcular a data na primeira célula do calendário (B6). Isto é feito com esta fórmula:
=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)esta fórmula calcula o domingo anterior ao primeiro dia do mês, usando a função de escolha para “rolar para trás” o número certo de dias para o domingo anterior. Escolher funciona perfeitamente nesta situação, porque permite valores arbitrários para cada dia da semana. Usamos este recurso para retroceder zero dias quando o primeiro dia do mês é um domingo. Mais detalhes sobre este problema são fornecidos aqui.
com o primeiro dia estabelecido em B6, as outras fórmulas na grade simplesmente incrementam a data anterior por uma, começando com a fórmula em C6:
=IF(B6<>"",B6,$H5)+1esta fórmula testa a célula imediatamente à esquerda para um valor. Se não for encontrado nenhum valor, ele puxa um valor da coluna H na linha acima. Nota $H5 é uma referência mista, para bloquear a coluna como a fórmula é copiada em toda a grade. A mesma fórmula é usada em todas as células exceto B6.
as regras condicionais de formatação
o calendário usa fórmulas condicionais de formatação mudam a formatação para sombrear os meses anteriores e futuros, e para realçar o dia actual. Ambas as regras são aplicadas a toda a rede. Para os meses anteriores e próximos, a fórmula é:
=MONTH(B6)<>MONTH(start)Para o dia atual, a fórmula é:
=B6=TODAY()
Para mais detalhes, ver: formatação Condicional com fórmulas (10 exemplos)
título do Calendário
O título do calendário – o mês e o ano são calculadas com esta fórmula na célula B4:
=startFormatado com o formato de número personalizado “mmmm de aaaa”. Para centralizar o título acima do calendário, O range B4: H4 tem alinhamento horizontal definido para “Centro através da seleção”. Esta é uma opção melhor do que juntar células, uma vez que não altera a estrutura da grade na planilha.
calendário Perpétuo, com data atual
Para criar um calendário que atualiza automaticamente com base na data atual, você pode usar a fórmula como esta no K5:
=EOMONTH(TODAY(),-1)+1Esta fórmula é a data atual com a função HOJE e, em seguida, começa o primeiro dia do mês atual usando a função EOMONTH. Substituir hoje () por qualquer data indicada para construir um calendário em um mês diferente. Mais detalhes sobre como EOMONTH funciona aqui.
Passos para criar
- Ocultar linhas de grade (opcional)
- Adicionar uma borda a B5:H11 (7R x 7C)
- Nome K5 “iniciar” e digite a data como o “setembro 1, 2018”
- Fórmula em B4 =start
- Formato B4 como “mmmm de aaaa”
- Selecione B4:H4, definir o alinhamento para “centralizar seleção”
- No intervalo B5:H5, introduza dia abreviaturas (SMTWTFS)
- Fórmula em B6 =iniciar-ESCOLHA(dia da SEMANA(início),0,1,2,3,4,5,6)
- Selecione B6:H11, aplicar o formato de número personalizado “d”
- Fórmula em C6 =SE(B6″”,B6,$H5)+1
- Copiar fórmula em C6 para células restantes no calendário
- Adicionar Prev/Next regra de formatação condicional (ver fórmula acima)
- Adicionar Atual regra de formatação condicional (ver fórmula acima)
- Alterar a data no K5 para o outro: “primeiro mês” data para testar
- Para calendário perpétuo, fórmula no K5 =EOMONTH(HOJE(),-1)+1