Função para Contar Dias de Semana no Excel

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.

função vba para contar dias da semana no Excel

Para utilização da função basta colocar a seguinte sintaxe:

=gfContaTipoDia(Data Inicial; Data Final; Número do dia da semana)

aplicação de função vba para contar dias da semana no Excel

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.

contar dias da semana com vba

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)))

função reduce vba para contar dias da semana no Excel

Após aplicada a função temos o seguinte resultado:

função matriz dinâmica para contar dias da semana no Excel

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:

Baixe a planilha


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel