Categorias
Excel

Contar número de sábados ou domingos em um mês com Excel

Recentemente precisei contabilizar a quantidade de sábados e domingos que existem da data atual até o final do mês. Encontrei diversas formas de fazer isso, aqui vou trazer a que achei mais prática

Função DIATRABALHOTOTAL.INTL

O método consiste em usar a função NETWORKDAYS.INTL (DIATRABALHOTOTAL.INTL em português). Esta função calcula quantos dias úteis existem entre duas datas e recebe três parâmetros:

  • Data Inicial
  • Data Final
  • Fim de semana: Regra do que é dia útil e o que é final de semana. Se não for passado, ele considera sábado e domingo como final de semana, mas permite ser customizado para contar só sábado ou só domingo, ou qualquer combinação de dias. Existem alguns valores pré-definidos para esse parâmetro, mas ele também suporta uma texto com 7 números 1 ou 0, indicando se é considerado um dia útil ou não. O primeiro número representa segunda-feira, o segundo terça-feira e assim por diante. Exemplo: 1111100, indica que sábado e domingo são considerados fim de semana:

Exemplo de uso para retornar quantos dias úteis faltam para o final do mês:

# Inglês
=NETWORKDAYS.INTL(TODAY(); EOMONTH(TODAY();0))

# Portugues
=DIATRABALHOTOTAL.INTL(HOJE(); FIMMÊS(HOJE();0))

Agora a alteração para contar quantos sábados e domingos faltam para o final do mês:

# Inglês
=NETWORKDAYS.INTL(TODAY(); EOMONTH(TODAY();0); "1111100")

# Portugues
=DIATRABALHOTOTAL.INTL(HOJE(); FIMMÊS(HOJE();0); "1111100")

Para contar outros dias, basta adaptar o último parâmetro para o dia desejado. Exemplos:

  • 0111111: Contará as segundas-feira que faltam para o final do mês
  • 1011111: Contará as terças
  • 1110011: Contará quantas quintas e sextas faltam
  • Etc
Categorias
Excel

Encontrar a penúltima ocorrência de um determinado valor no Excel

Já fiz dois posts ensinando como encontrar a última e a n-ésima ocorrência de um valor no Excel, agora trago uma variação desse última para conseguir obter o penúltimo valor.

A abordagem é bem semelhante ao de encontrar a n-ésima ocorrencia, a diferença fica no uso da função LARGE (MAIOR em português) ao invés da SMALL (MENOR). Seguindo o mesmo exemplo, suponha que você tenha uma tabela com os dados:

Neste caso, se eu procurar por “Caneta”, gostaria de obter o valor “R$ 4,00”. A função é a seguinte:

=INDEX(B2:B10;LARGE(IF("Caneta"=A2:A10;ROW(A2:A10)-ROW(A2)+1);2))

Aplique com CONTROL+SHIFT+ENTER.

O que determina qual ocorrência será retornada é o segundo parâmetro da função LARGE, nesse caso o número 2 para indicar que queremos o penúltimo. Para pegar a última ocorrência bastaria trocar ele para 1, a antepenúltima para 3 e assim por diante.

Categorias
Dicas Excel

Somar valores dentro de um período de datas com Excel

Dado que você tenha uma série de dados com as respectivas datas e você precise soma-los baseado no período de tempo que eles ocorreram, como por exemplo somar todas as vendas por mês.

É possível fazer isso de forma fácil no Excel usando a fórmula SUMIFS (SOMASE em português):

=SUMIFS(valores; datas; ">=" & DATE(ano,mês,dia); datas; "<=" & DATE(ano,mês,dia))

Onde:

  • valores: É o range da valores que serão somados
  • datas: É o range de datas que serão comparados

Exemplo:

Exemplo de soma por período
Exemplo de soma por período

Nesse exemplo também utilizei as funções YEAR e MONTH (ANO e MES em português) para extrair o ano e mês das células e não precisar editar a fórmula para cada período que eu quiser utilizar.

Categorias
Dicas Excel

Encontrar a n-ésima ocorrência de um valor no Excel

Já fiz um post mostrando como encontrar a última ocorrência de um determinado valor no Excel, mas agora vou mostrar como é possível encontrar o número da linha da n-éssima ocorrência de um determinado valor.

Dado que você tenha uma planilha, como a seguinte:

Se eu buscar pela terceira ocorrência de “Café”, quero que a função retorne o valor 8, que corresponde ao número da linha. Para isso, utilizaremos as funções SMALL e ROW (MENOR e LIN em português):

=SMALL(IF(E1=$A$2:$A$10; ROW($A$2:$A$10)-ROW($A$1)+1); E2)

Essa é uma função matricial, então para aplica-la utilize CONTROL+SHIFT+ENTER.

Resultado

Caso queira o valor associado ao invés do número da linha, utilize a função acima em conjunto com a função INDEX (ÍNDICE em português):

=INDEX($B$2:$B$10;SMALL(IF(E1=$A$2:$A$10;ROW($A$2:$A$10)-ROW($A$2)+1);E2))

Aplique com CONTROL+SHIFT+ENTER.

Resultado

Categorias
Dicas Excel

Encontrar a última ocorrência de um determinado valor no Excel

Dado que você tenha uma planilha com diversos valores repetidos, como encontrar a última ocorrência de um dado valor? Existem diversas formas de resolver isso, a mais simples é usando a função LOOKUP (ou PROC em português) do Excel.

Suponha que você tenha uma planilha com alguns dados, como itens de uma compra e o valor e queira encontrar o valor que pagou na última vez que comprou um determinado item:

planilha exemplo

Nesse exemplo, se eu procurar por “Caneta” a função deve retornar o valor “R$ 2,50”. A chamada da função fica assim:

=LOOKUP(2;1/(A2:A5=D2);B2:B5)

Resultado

Resultado

Explicação
No segundo parametro usamos 1/(A2:A5=D2) como vetor de procura, onde (A2:A5=D2) irá retornar um vetor com valores TRUE/FALSE para cada índice indicando se corresponde ou não ao valor procurado. Dividindo isso por 1, teremos um vetor com 1s ou erro #DIV/0!.

Ai que entra a mágica, o primeiro parâmetro da função é o valor buscado no vetor, como passamos o valor 2 e nosso vetor de procura não tem nenhum, a função retornará o último número (o último 1) do vetor que corresponde ao índice da linha que procuramos no vetor de resultado (B2:B5).