Função DIA.DA.SEMANA no Excel para criar calendários: como montar cronogramas automáticos que se adaptam ao mês

Criar um calendário no Excel que funciona corretamente para qualquer mês — onde os fins de semana ficam no lugar certo, onde os dias úteis são calculados automaticamente e onde você só precisa mudar o mês e o ano para que tudo se ajuste — é um projeto que parece complexo mas se torna acessível quando você usa a função DIA.DA.SEMANA de forma estratégica. Neste artigo iremos mostrar como usar a função DIA.DA.SEMANA no Excel para criar calendários e cronogramas automáticos que se adaptam ao mês e ao ano com um mínimo de configuração manual.

Construindo a base do calendário com DIA.DA.SEMANA

A lógica de qualquer calendário automático começa com a construção da sequência de datas do mês. O primeiro dia do mês é obtido pela função DATA: =DATA(ano;mês;1), onde ano e mês são valores em células de configuração. Com o primeiro dia calculado, os demais dias do mês são simplesmente o primeiro dia somado a 0, 1, 2… até 30 (ou 27, 28 ou 29, dependendo do mês). A fórmula =DATA($B$1;$B$2;LINHA()-LINHA($A$4)+1) gera automaticamente a sequência de dias quando arrastada para baixo, onde B1 é o ano, B2 é o mês e LINHA()-LINHA($A$4) calcula a sequência começando em 1.

Com as datas geradas, o DIA.DA.SEMANA entra para identificar em qual coluna cada data deve aparecer em um calendário de grade semanal. Em um calendário de grade tradicional (segunda a domingo nas colunas, semanas nas linhas), a coluna de cada data é determinada pelo seu dia da semana com tipo 2: =DIA.DA.SEMANA(data;2). Segunda-feira vai para a coluna 1, terça para a coluna 2, e assim por diante. Para colocar cada data na célula correta da grade sem digitar manualmente, use a lógica inversa: em cada célula da grade, verifique se a data do dia atual corresponde à posição na grade usando a fórmula =SE(DIA.DA.SEMANA(data_na_posição;2)=coluna_atual;data_na_posição;””).

Para um calendário mais simples — uma lista vertical com uma linha por dia e o nome do dia ao lado —, o DIA.DA.SEMANA é ainda mais direto. Na coluna A coloque as datas do mês (com a fórmula de sequência mencionada acima), na coluna B exiba o nome do dia: =TEXTO(A4;”dddd”) ou =ESCOLHER(DIA.DA.SEMANA(A4;2);”Seg”;”Ter”;”Qua”;”Qui”;”Sex”;”Sáb”;”Dom”). Na coluna C, marque automaticamente fins de semana: =SE(DIA.DA.SEMANA(A4;2)>=6;”FDS”;””). Esse calendário vertical simples com nome do dia e marcação de fim de semana é suficiente para a maioria dos cronogramas de projeto que precisam de referência de datas.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

Automatizando a geração de dias úteis no cronograma

Uma necessidade muito comum em cronogramas é listar apenas os dias úteis, pulando automaticamente os fins de semana. Sem automação, você preenche as datas manualmente e tem que ajustar toda vez que o mês muda. Com DIA.DA.SEMANA e fórmulas de array, você cria uma sequência que gera apenas os dias úteis automaticamente.

A abordagem mais elegante usa a função FILTRO do Excel 365: =FILTRO(SEQUÊNCIA(31;1;DATA($B$1;$B$2;1));(DIA.DA.SEMANA(SEQUÊNCIA(31;1;DATA($B$1;$B$2;1));2)<6)*(SEQUÊNCIA(31;1;DATA($B$1;$B$2;1))<=FIMMÊS(DATA($B$1;$B$2;1);0))). O SEQUÊNCIA gera os 31 possíveis dias do mês, o DIA.DA.SEMANA filtra apenas os dias com resultado menor que 6 (dias úteis) e o FIMMÊS garante que os dias além do último dia do mês não sejam incluídos. O FILTRO retorna apenas as datas que atendem ambas as condições — uma lista automática de todos os dias úteis do mês.

Para versões anteriores ao Excel 365, a abordagem é diferente mas igualmente automática: use a função DIAS.ÚTEIS para calcular cada dia útil sequencialmente. O primeiro dia útil do mês: =DIAS.ÚTEIS(DATA($B$1;$B$2;1)-1;1) (o primeiro dia útil a partir do dia zero do mês — ou seja, o último dia do mês anterior, mais um dia útil). O segundo dia útil: =DIAS.ÚTEIS(DATA($B$1;$B$2;1)-1;2). E assim por diante. Embora mais verbosa do que a versão com FILTRO, essa abordagem funciona em qualquer versão do Excel e gera a mesma lista automática de dias úteis.

Criando um cronograma de projeto com fins de semana bloqueados automaticamente

Em cronogramas de projeto, é essencial que as tarefas só sejam alocadas em dias úteis — nenhuma tarefa deveria começar ou terminar em um sábado ou domingo. Com DIA.DA.SEMANA, você cria fórmulas de datas de início e término que automaticamente “pulam” os fins de semana quando calculam prazos.

Para calcular a data de término de uma tarefa que começa em uma data específica e tem uma duração em dias úteis: use a função DIAS.ÚTEIS diretamente: =DIAS.ÚTEIS(data_inicio;duração_dias_úteis). Por exemplo, se a tarefa começa em 10/03/2025 (segunda) e tem 5 dias úteis de duração, a função retorna 14/03/2025 (sexta). Se começa em 12/03/2025 (quarta) e tem 5 dias úteis, o término é 18/03/2025 (terça da semana seguinte, pulando sábado e domingo). A função DIAS.ÚTEIS faz esse cálculo automaticamente, sem que você precise verificar manualmente quais dias são fins de semana.

Para validar se uma data de início inserida manualmente cai em dia útil — e alertar o usuário caso tenha inserido um fim de semana inadvertidamente —, use DIA.DA.SEMANA em uma célula de verificação: =SE(DIA.DA.SEMANA(A5;2)>=6;”⚠ Data de início em fim de semana!”;”✓ Dia útil”). Esse alerta aparece automaticamente ao lado do campo de data de início toda vez que o usuário insere uma data de sábado ou domingo, orientando a correção sem precisar de validação de dados que bloqueia o preenchimento.

Calendário mensal com totais automáticos por semana

Uma funcionalidade muito útil em calendários de planejamento é o total automático por semana. Se cada linha do calendário representa uma semana e você tem valores (como horas trabalhadas, vendas ou qualquer outra métrica) associados a cada dia, o total da semana pode ser calculado automaticamente com uma fórmula simples de SOMA no final de cada linha.

Para somar automaticamente cada semana do mês sem se preocupar com quantas semanas o mês tem, use o número da semana do ano como agrupador: =SOMARPRODUTO(–(NÚM.SEMANA($A$4:$A$34;2)=NÚM.SEMANA(data_da_semana;2))*($B$4:$B$34)). Onde A4:A34 são as datas do mês, B4:B34 são os valores e data_da_semana é qualquer data da semana que você quer totalizar. O NÚM.SEMANA com parâmetro 2 (semana começando na segunda) garante que a semana é contada de forma consistente com o DIA.DA.SEMANA tipo 2. O resultado é o total dos valores de todos os dias que pertencem à mesma semana do ano, calculado automaticamente sem precisar definir o intervalo de cada semana manualmente.

Com domínio sobre o DIA.DA.SEMANA em calendários, você passa de usuário que cria planilhas estáticas para designer de ferramentas de planejamento que qualquer membro da equipe consegue usar. A fórmula parece complexa no início, mas depois de entender que o DIA.DA.SEMANA é apenas um identificador de posição na semana e que esse identificador pode ser usado para gerar, filtrar e formatar qualquer dado relacionado a datas, o horizonte de possibilidades se expande significativamente.

Se você curtiu esse artigo onde mostramos como usar a função DIA.DA.SEMANA no Excel para criar calendários e cronogramas automáticos, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *