Notifications
Clear all

Contagem de células em intervalos diversos

15 Posts
6 Usuários
0 Reactions
2,898 Visualizações
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Bom dia!

Amigos, venho aqui novamente para pedir ajuda em recursos que fogem dos meus domínios de conhecimento.

Gostaria de resolver isso, preferencialmente, sem VBA.

São dois desafios diferentes:

A)No decorrer da semana, deve haver um descanso de 11 horas entre o fim do expediente de um dia e o início do dia seguinte (grifado de amarelo), e eu preciso preencher ali ao lado pela “quantidade de quadradinhos” (cada quadradinho é 15 minutos).

Só que eu estou fazendo isso manualmente e gostaria de saber se da pra fazer com formula.

Só que os horários mudam, então tem que ser uma formula inteligente, e eu não consegui desenvolver nenhuma...

B)No fim de semana deve haver o intervalo de 11 horas de descanso e mais 24 horas do dia de folga (domingo), então eu venho fazendo de forma manual “11 x 4 = 44” no ultimo dia da semana e eu conto o intervalo total (grifado de verde) e subtraio os “44”.

E da mesma forma os horários mudam, e eu não consegui fazer uma formula inteligente para interpretar esta situação... =/

Desde já, obrigado!

 
Postado : 18/04/2018 5:53 am
(@deciog)
Posts: 0
New Member
 

Pedro, Bom Dia.

Tenho muita duvida, lembra sabemos montar formula mas não sabemos do seu projeto.

Para que posso fazer a formula pergunto

Como você chegou ao valor de 52,00 que esta em amarelo

Porque tem quadros pintados em amarelo e também tem não pintados na mesma linha

O que significa os números dentro do quadrinho e como chegou este números

Decio

 
Postado : 18/04/2018 6:43 am
(@thiagoj)
Posts: 0
New Member
 

Bom dia Pedro,

Para contar o intervalo de vazios utiliza a seguinte Fórmula.

=CONT.SE(E29:CV29;"")

Em cima disso você tera a quantidade de células vazias nesse intervalo, a é só agrupar as demais fórmulas já existentes em sua planilha.

 
Postado : 18/04/2018 7:50 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Como você chegou ao valor de 52,00 que esta em amarelo

Eu cheguei em 52 contando manualmente...

O que significa os números dentro do quadrinho e como chegou este números

Os números dentro do quadradinho, estão ali em cima onde está escrito "MOTIVO", ali é a legenda de cada número.

Mas o que eu preciso não tem nada haver com os quadradinhos que tem número...

Eu estou medindo o intervalo de descanso entre um dia e outro.

Então eu preciso ver que horas o empregado parou de trabalhar em dia, e contar a quantidade de "quadrados vazios" até o fim daquele dia, e no dia seguinte eu peciso contar a quantidade de "quadrados vazios" até ele começar o expediente do dia seguinte.

Então eu preciso somar um "cont.se" no fim de um dia com um "cont.se" no inicio do outro dia....

Mas o fim de um dia muda quase sempre, e o início do dia seguinte muda quase sempre....

Sobre essa sugestão Thiago J

Para contar o intervalo de vazios utiliza a seguinte Fórmula.
=CONT.SE(E29:CV29;"")

O problema é que essa formula contou o "antes" e o "depois" no mesmo dia, na linha 29, e o que eu preciso é o "depois" em dia e o "antes" no dia seguinte...

Ta brabo essa hein, eu ainda não consegui... =/

 
Postado : 23/04/2018 2:29 pm
(@estevaoba)
Posts: 0
New Member
 

Tente desta forma:

=SE(C14=1;96;SE(C14=7;44;CONT.SE(BA14:CV14;"")+CONT.SE(E15:AZ15;"")))

Não entendi o seu cálculo manual para os valores dos domingos, então coloquei 96 na fórmula.
Você pode alterar.

Good luck!

 
Postado : 23/04/2018 7:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
Pedro, desculpe mas acho que você escolheu a pior forma de controlar o ponto e folgas dos funcionários - imagina ficar marcando o que o funcionario está fazendo a cada 15 minutos (afff)!!! ... Com data e hora de entrada e data e hora de saída fica bem mais fácil!!!
.
Não gosto de fazer a crítica e não dar a solução, mas como minha sugestão seria radical (muito diferente da sua), além disso estou em período de provas na faculdade, portanto sem tempo para montar uma sugestão diferente!!
.
Mas se você disser aqui que aceita sugestões, outros podem fazer algo mais funcional!!!!

 
Postado : 23/04/2018 8:00 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Tente desta forma:
=SE(C14=1;96;SE(C14=7;44;CONT.SE(BA14:CV14;"")+CONT.SE(E15:AZ15;"")))

Estevaoba, primeiramente explicando sobre a quantidade:

Entre um dia e outro são 11 horas de descanso, e no fim de semana são 35 (11 no final de sexta/sábado + 24 hora do domingo), então quando eu faço manualmente é o seguinte, no ultimo dia de uma sequencia eu faço 11 * 4 = 44, e faço o total de quadradinhos em branco - 44, que deve dar um descanso maior que 24 * 4 = 92.

Sempre que o intervalo entre dois dias de semana é menos de 11 horas (44 quadradinhos), ele tem que pagar.
E, sempre que o fim de semana é menos que 35 horas (140 quadradinhos), ele tem que pagar.

Testei a sua sugestão, ajustando o 96 e quase dá certo. O problema é limitar os "cont.se", sendo o primeiro "BA14:CV14", porque pode ser que ele pare de trabalhar antes da coluna "BA", então vai ter quadradinhos em branco antes da coluna "BA"... E no segundo "E15:AZ15", porque pode ser que ele comece a trabalhar depois da coluna "AZ", então vai ter quadradihnos em branco após a coluna "AZ"...

Se houvesse alguma forma de tornar estes intervalos dinâmicos / inteligentes... =/

Isso ta dando uma dor de cabeça... to quase chorando aqui T.T, mas continuo na busca...

Até agora, obrigado pelas sugestões!

Pedro, desculpe mas acho que você escolheu a pior forma de controlar o ponto e folgas dos funcionários - imagina ficar marcando o que o funcionario está fazendo a cada 15 minutos (afff)!!! ... Com data e hora de entrada e data e hora de saída fica bem mais fácil!!!

Eu sei JSCOPA, mas não fui eu que optei, eu estou prestando um serviço para a empresa que já tem isso desta forma =/

Eu tenho limitações de conhecimento técnico mas eu nunca teria feito desta forma!!!

Eu tenho que fazer uma amostragem em 10 funcionários, são mais de 120 planilhas destas, enquanto peço ajuda aqui, em paralelo, eu vou adiantando manualmente mesmo, caso não haja solução...

De qualquer forma, obrigado pela franqueza kkkk

Sigo na luta pessoa, e aceito as sugestões, desde que eu possa aplicá-las nas tabelas da empresa, eu não posso mudar as tabelas =/

 
Postado : 25/04/2018 2:40 pm
(@edsonbr)
Posts: 0
New Member
 

Boa tarde, Pedro:

Não compreendi muito bem seu critério do fim de semana, por isso deixei de lado. No meu modo de ver, as vazias do final de Sábado deveriam se somar às vazias de domingo (96) e também às vazias até o começo de segunda-feira. Também não entendi por qual motivo o valor de sábado não é pelo real e sim dá sempre 44. Não parece ser um critério válido.

Outro ponto, pelo que se apresenta para a data de 26/05/16 (quinta-feira = feriado??), o critério de fim-de-semana também vale para feriados, não é mesmo? Então o critério "Dia.Da.Semana" é necessário mas não suficiente. Um melhor critério seria então verificar se o dia seguinte é todo de células vazias.

Então fiz a fórmula para os dias ordinários e deixo a do FDS/Feriados para que mais alguém que queira contribuir ou um melhor esclarecimento seu de onde estão contabilizadas as horas não trabalhadas no final de sábado e no início de segunda.

------
Cuidado: há um erro de 2 a menos em sua contagem de células brancas. Por exemplo, o valor em DB14 deveria ser 51 e não 49. Vc deve ter selecionado as células brancas com o mouse e confiado na contagem que aparece na barra de Status, não é mesmo?
Mas faça um teste simples: selecione com o mouse o intervalo E14:H14. A contagem de células na barra de Status aparece como 3 quando na verdade são 4 células selecionadas. Isso ocorre pq algumas dessas células são fórmulas e outras estão em branco. A coluna E inteira está sem fórmulas. Também está sem fórmula uma célula de cada linha no final da sequencia de números.
Lembrar que a barra de Status NÃO mostra a contagem de células selecionadas mas sim resultado da função CONT.VALORES, o qual não inclui na contagem células totalmente vazias.

 
Postado : 26/04/2018 9:42 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Boa tarde EdsonBR, primeiramente sim, você entendeu perfeitamente o problema, entendeu os critérios legais, e também entendeu como eu vinha fazendo, e de quebra me mostrou um erro que eu não notei nesta questão de selecionar células com o mouse, desde já muito obrigado!

Sobre a parte que eu não havia esclarecido bem, deixa eu tentar explicar de novo...
01) Como eu tava fazendo manualmente, quando chega no ultimo dia de trabalho da semana (que geralmente é sábado, mas as vezes é em outro dia), eu fazia 11 horas x 4 quadradinhos = 44 quadradinhos, e digitava ali, assim ficava fixo sempre 44.
02)Na sequencia, vem um dia de folga, e a regra do dia de folga é 24 horas, ou seja, 24 x 4 = 96.
Só que a legislação faz uma fusão do intervalo de 11 horas + 24 horas, perfazendo um intervalo de 35 horas no fim de semana.
Daí, no sábado fica sempre 44, e a "conta" fica só no domingo, a quantidade de quadradinhos vazios - 44 = X, e se o X for menos que 96, paga hora extra...
Foi a gambiarra que eu consegui pensar. Saca?

Vi que no teu exemplo tu deixou "?", nos domingos, e pediu uma explicação melhor, por acaso, eu consegui explicar? Tem como adicionar isso naquela fórmula que tu criou?

Se não tiver como, mesmo assim, cara essa formula resolveu todo o problema de segunda à sábado, já diminui em cinco sétimos o trabalho, muito obrigado desde já!

Sobre os feriados...

Eu não tinha me ligado nos feriados, sim, você está certo, quando há um feriado a regra é a mesma da folga de domingo, 24 horas... Mas daí eu não sei nem a formula do domingo (consequentemente não sei fazer ela pros feriados), e ainda outra, (se não for te pedir muito) pode me ajudar a identificar os feriados via fórmula?

Mas como eu disse, até aqui tu já me ajudou muito!
Não há problema se não for possível completarmos a fórmula com esses outros critérios....

 
Postado : 26/04/2018 2:56 pm
(@edsonbr)
Posts: 0
New Member
 

...Tem como adicionar isso naquela fórmula que tu criou?

Pedro,

Nas células

DB20: =161-XXX
DB24: =146-XXX
DB27: =164-XXX
DB34: =153-XXX

onde XXX entendi, é sempre 44.

Da forma como vc explicou para mim acima e também para o Estevao, mesmo assim não consigo chegar nos outros valores que vc usou na fórmula.

Então explique matematicamente, detalhadamente, qual foi a soma que vc fez para obter os valores 161, 146, 164, 153? E principalmente, confira também se esses valores estão corretos, pois acho que mais do que um não estão.

Só um deles, bem detalhado, já seria suficiente. Ou não entendi seu raciocínio para atingir esses valores.

...(se não for te pedir muito) pode me ajudar a identificar os feriados via fórmula?

Com exceção dos feriados fixos, teria que primeiro montar uma tabela pra saber quais feriados são/foram/serão considerados em seu problema, pois pela amostra que vc nos deu vc trabalha com tabelas passadas também. Tem feriados municipais/estaduais? Emendas? São diversos detalhes, mas havendo uma planilha com uma tabela de feriados, já dá pra começar.

 
Postado : 27/04/2018 11:47 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Amanhã de manhã vou dedicar um tempo para eaborar um novo exemplo, vou explicar esses números (se estiverem corretos), e a parte dos feriados acho que eu consigo deixar pronta usando uma coluna auxiliar, só não vou conseguir colocá-los na fórmula. Retorno com o exemplo amanhã, porque hoje to em outro caso urgente, mas desde já obrigado pela ajuda!

 
Postado : 27/04/2018 5:03 pm
(@estevaoba)
Posts: 0
New Member
 

Boa noite, Pedro.

Usei a função DESLOC para tornar dinâmicos os intervalos CONT.SE.

=SE(C14=1;96;SE(C14=7;44;CONT.SE(DESLOC(CV14;;;1;-COL(CV14)+MÁXIMO(SE(E14:CV14<>"";COL(E14:CV14))));"")+CONT.SE(DESLOC(E15;;;1;MÍNIMO(SE(E15:CV15<>"";COL(E15:CV15)))-COL(E15));"")))

Fórmula matricial, portanto cole e finalize com Ctrl+shift+enter.

Por favor, faça testes e nos dê retorno.

Good luck!

 
Postado : 28/04/2018 3:59 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

...Tem como adicionar isso naquela fórmula que tu criou?

Pedro, ...

EdsonBR, sobre esta tua fórmula, eu consegui adaptá-la usando uma coluna auxiliar, ver coluna "C", e alterando um pouco as formulas das colunas de apuração.

Na coluna "DL" nomeada como "Cont", só substitui o "?" da tua formula assim:

{=SE(B14="";"";SE(E(CONTAR.VAZIO($E14:$CV14)<>96;CONTAR.VAZIO($E15:$CV15)<>96);
COL($CV:$CV)-MÁXIMO(SE($E14:$CV14<>"";COL($E14:$CV14);""))+MÍNIMO(SE($E15:$CV15<>"";COL($E15:$CV15);""))-COL($E:$E);
COL($CV:$CV)-MÁXIMO(SE($E14:$CV14<>"";COL($E14:$CV14);""))+MÍNIMO(SE($E15:$CV15<>"";COL($E15:$CV15)+MÍNIMO(SE($E16:$CV16<>"";COL($E16:$CV16);""))-COL($E:$E)))))}

Funcionou 100%! Muito obrigado!

Segue anexo atualizada, agora vou replicar em todas as tabelas, já vi que funciona com um "Ctrl+C / Ctrl+V" simples...

 
Postado : 30/04/2018 2:21 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Amigos podem me ajudar, com uma dúvida que surgiu, mesmo pensando que estava tudo resolvido?

Olhando a data 25/12/2015 - linha 23, verifiquei que com a formula do EdsonBR conta "27" = 6,75 horas de intervalo, e apura diferenças...

{=SE(B23="";"";SE(E(CONTAR.VAZIO($E23:$CV23)<>96;CONTAR.VAZIO($E24:$CV24)<>96);
COL($CV:$CV)-MÁXIMO(SE($E23:$CV23<>"";COL($E23:$CV23);""))+MÍNIMO(SE($E24:$CV24<>"";COL($E24:$CV24);""))-COL($E:$E);
COL($CV:$CV)-MÁXIMO(SE($E23:$CV23<>"";COL($E23:$CV23);""))+MÍNIMO(SE($E24:$CV24<>"";COL($E24:$CV24)+MÍNIMO(SE($E25:$CV25<>"";COL($E25:$CV25);""))-COL($E:$E)))))}

E com a formula do Estvaoba conta "30" = 7,50 horas de intervalo, e também apura diferenças...

{=SE(OU(C23=1;C23="FER");96;SE(C23=7;44;CONT.SE(DESLOC(CV23;;;1;-COL(CV23)+MÁXIMO(SE(E23:CV23<>"";COL(E23:CV23))));"")+CONT.SE(DESLOC(E24;;;1;MÍNIMO(SE(E24:CV24<>"";COL(E24:CV24)))-COL(E24));"")))}

Mas ocorre que é uma sexta-feira, e não há trabalho nenhum no sábado, então não poderia apurar nenhum "intervalo a menor" nessas situações...

Tentei resolver nos dois códigos, mas como eu não entendi bem o código original, não tive sucesso em adaptá-lo...

 
Postado : 30/04/2018 2:33 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 


Não consigo entender essa diferença, tentei várias coisas aqui, obtive resultados diferentes, mas nenhum é o certo...

Alguém mais acostumado com fórmulas matriciais saberia me explicar?

Amigos podem me ajudar, com uma dúvida que surgiu, mesmo pensando que estava tudo resolvido?

Olhando a data 25/12/2015 - linha 23, verifiquei que com a formula do EdsonBR conta "27" = 6,75 horas de intervalo, e apura diferenças...

{=SE(B23="";"";SE(E(CONTAR.VAZIO($E23:$CV23)<>96;CONTAR.VAZIO($E24:$CV24)<>96);
COL($CV:$CV)-MÁXIMO(SE($E23:$CV23<>"";COL($E23:$CV23);""))+MÍNIMO(SE($E24:$CV24<>"";COL($E24:$CV24);""))-COL($E:$E);
COL($CV:$CV)-MÁXIMO(SE($E23:$CV23<>"";COL($E23:$CV23);""))+MÍNIMO(SE($E24:$CV24<>"";COL($E24:$CV24)+MÍNIMO(SE($E25:$CV25<>"";COL($E25:$CV25);""))-COL($E:$E)))))}

E com a formula do Estvaoba conta "30" = 7,50 horas de intervalo, e também apura diferenças...

{=SE(OU(C23=1;C23="FER");96;SE(C23=7;44;CONT.SE(DESLOC(CV23;;;1;-COL(CV23)+MÁXIMO(SE(E23:CV23<>"";COL(E23:CV23))));"")+CONT.SE(DESLOC(E24;;;1;MÍNIMO(SE(E24:CV24<>"";COL(E24:CV24)))-COL(E24));"")))}

Mas ocorre que é uma sexta-feira, e não há trabalho nenhum no sábado, então não poderia apurar nenhum "intervalo a menor" nessas situações...

 
Postado : 03/05/2018 5:53 am