Contar dias da semana entre datas no Excel

Planilha de escala de trabalho automática Excel
3 de setembro de 2016
10-dicas-de-programacao-vba
10 Dicas de como programar em VBA Excel
10 de setembro de 2016

Contar dias da semana entre datas no Excel

Quantos domingos há entre duas datas? Segundas-feiras? Sábados? Neste artigo você verá como contar dias da semana entre datas no Excel.

Para contar a quantidade de dias da semana entre duas datas, nós utilizaremos quatro funções no Excel, SomarProduto, Dia.Da.Semana, Lin e Indireto. Veja passo-a-passo como construir esta fórmula.

Montando a fórmula

Contar dias da semana entre duas datas Excel 1

Na planilha nós temos a Data 1, Data 2, Dia da semana e a Solução. Nos campos de data colocaremos o intervalo inicial em Data 1, em Data 2 o final, no dia da semana o dia correspondente ao dia da semana 1-Domingo, 2-Segunda-feira, 3-Terça-feira, 4-Quarta-feira, 5-Quinta-feira, 6-Sexta-feira, 7-Sábado e na Solução colocaremos a fórmula.

Fórmula

A fórmula utilizada será a seguinte:

Contar dias da semana entre duas datas Excel 2

=SOMARPRODUTO(- -(DIA.DA.SEMANA(LIN(INDIRETO(B6&”:”&C6)))=D6))

Vamos entender como funciona a fórmula.

A função SOMARPRODUTO realiza a multiplicação de matrizes e a soma de valores.

Nesta função o SOMARPRODUTO realiza a contagem da quantidade de datas que atendem ao requisito de dia da semana especificado na planilha.

O operador faz com que o resultado da matriz seja compreendido como binário, 1 para verdadeiro e 0 para falso, ou seja, na verificação se o dia da semana é o mesmo da planilha ele retorna 1 para verdadeiro e 0 para falso, por exemplo {1,0,0,1,1,0,0,0} e a função SOMARPRODUTO soma estes valores 1+0+0+1+1+0+0+0.

A função Dia.da.semana retorna o dia da semana correspondente de uma data, por exemplo 03/09/2016 retorna 7 indicando que o dia é um sábado.

A função LIN funciona dentro da fórmula em conjunto com a função INDIRETO, convertendo o intervalo em uma matriz, por exemplo B6:C6 dentro da função indireto é aberto por conta da função LIN em uma matriz.

Por exemplo o período de 01/01/2016 á 10/01/2016 dentro da fórmula é aberto como: {42370;42371;42372;42373;42374;42375;42376;42377;42378;42379}, e estes números são interpretados como datas pelo Excel e é verificado se o mesmo é semelhante ao dia da semana da fórmula em =D6.

Se for igual ele retorna 1, senão retorna 0 e o mesmo é somado pela matriz.

Download “Contar dias da semana entre duas datas no Excel” Contar-dias-da-semana-entre-duas-datas-Excel.zip – Baixado 71 vezes – 7 KB

Abraço

Marcos Rieper

4 Comentários

  1. Anderson disse:

    Olá Marcos, bom dia!
    Parabéns pelo seu trabalho, muito bacana. Cheguei a ele por meio de uma consulta na rede, tenho uma tabela de datas aleatórias dentro do ano de 2017, e queria contar o numero de sábados, domingos, quartas, quintas e sextas na tabela, tentei utilizar várias fórmulas mas não estou chegando a um resultado, vi que sua postagem se aproxima muito do que quero, porém ela necessita de data inicial e data final, no meu caso, a contagem tem que acontecer nos intervalos da tabela com 67 datas, pode me ajudar?

    • Marcos Rieper disse:

      No seu caso você precisa do intervalo entre eles ou apenas contar se são sábados ou domingos estas datas?

    • Fábio disse:

      Respondendo ao comentário do Anderson (30 de junho de 2017 at 10:58)

      Anderson, boa tarde!
      Tenho um caso igual ao seu. Resolvi da seguinte forma (usando as dicas do Marcos)
      Digamos que suas datas aleatórias estejam na coluna B e o valor correspondente ao dia da semana que deseja contar esteja na célula C1. Pra contar, basta fazer o seguinte:

      =SOMARPRODUTO(–(DIA.DA.SEMANA($B1:$B600)=C1))
      Espero ter ajudado.
      Abraço!
      Fábio

  2. emerson disse:

    olá, muito útil, apenas para esclarecer uma dúvida, a fórmula copiada direto da página quando colada no excell está diferente do que consta na planilha para download.

    =SOMARPRODUTO(–(DIA.DA.SEMANA(LIN(INDIRETO(B6&”:”&C6)))=D6)) <- planilha
    =SOMARPRODUTO(–(DIA.DA.SEMANA(LIN(INDIRETO(B6&”:”&C6)))=D6)) <- fórmula na página

    há somente um sinal de negativo antes do dia da semana na página, e queria entender porque as aspas estão "em italico" na pagina e não funcionaram na fórmula, eu tive que apagar e digitar novamente, se pude rme ajudar, a curiosidade vai me matar.

Deixe uma resposta

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

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.