Neste artigo você aprenderá como contar dias da semana entre duas datas de duas formas, utilizando uma fórmula no Excel e com VBA.
Até o dia da semana tudo bem, pode-se utilizar a função DIATRABALHOTOTAL(data_inicial, data_final, [feriados]) que retorna a quantidade de dias úteis entre duas datas, mas como fazer para contar quantos sábados existem entre duas datas.
Para ajudar criei a função abaixo que conta quantos dias de um determinado dia da semana existem entre duas datas.
Depois é só chamar na planilha por exemplo =gfContaTipoDia(B2;C2;7), sendo B2 a data inicial e c2 a data final e 7 referente ao sábado.
Contar Dias da Semana no Excel com VBA
Caso a sua versão do Excel não permita o uso de matrizes dinâmicas ou precise distribuir para pessoas com diferentes versões do Excel, uma opção é usar esta função VBA.
Para incluir a função nova no Excel clique na guia Desenvolvedor e no botão Visual Basic.
Clique em Inserir->Módulo e copie e cole o código abaixo. O código é uma função personalizada cujo objetivo é contar os dias da semana entre duas datas.
'Função para contar número de dias de algum tipo entre datas
'vDataIni = Data Inicial
'vDataFim = Data Final
'vDia = Valor de 1 á 7 com o dia da semana
Function gfContaTipoDia(ByVal vDataIni As Date, ByVal vDataFim As Date, ByVal vDia As Integer) As Long
Application.Volatile
While vDataFim >= vDataIni
If Weekday(vDataIni) = vDia Then
gfContaTipoDia = gfContaTipoDia + 1
End If
vDataIni = vDataIni + 1
Wend
End Function
O código ficará como vemos abaixo aplicado.
Para utilização da função basta colocar a seguinte sintaxe:
=gfContaTipoDia(Data Inicial; Data Final; Número do dia da semana)
Na nossa aplicação temos então o resultado abaixo aonde são contados os dias da semana entre as duas datas de forma automática.
Fórmula Excel para Contar Dia da Semana no Excel
Outra forma de contar dia da semana no Excel é utilizando uma fórmula.
A fórmula que utilizamos para realizar este cálculo foi a função REDUCE que aplica uma fórmula para acumular dados de uma matriz.
Para isso aplicamos a função selecionando uma matriz com as datas que deseja contar por dia da semana.
A função aplicada é a abaixo, aonde temos a transformação dos dados em uma matriz com o uso da função DIA.DA.SEMANA, com isso temos uma matriz com números {1;2;3;4;5;6;7}.
=REDUCE(0;$B$6:$B$36;LAMBDA(a;b;SE(DIA.DA.SEMANA(b)=E6;a+1;a)))
Após aplicada a função temos o seguinte resultado:
Para incluir esta função nas suas funções úteis, crie um suplemento conforme o artigo Criando Funções Globais.
Download da Planilha de Contar Dias da Semana no Excel
Clique no botão abaixo para realizar o download do arquivo de exemplo: