- 15 Jan 2019 às 07:32
#40170
Olá,
Procure entender a fórmula para que tenha versatilidade de usá-la em outras condições.
Fiz em várias linhas apenas para deixar claro suas partes e finalidades. Funciona igual às que tem uma linha só: é so copiar e colocar na célula.
Troque F2 pelo endereço real onde está a data/hora. Se a data estiver em célula diferente da hora, então você tem que adaptar, ou dizer onde esta cada coisa. Para adaptar troque o F2 da segunda linha pelo endereço da célula que contém a data. Os demais F2 se referem à hora, e devem ser também alterados se a hora estiver noutro canto.
=SE(F2="";"";
SE(DIA.DA.SEMANA(F2;2)<=5;
SE( E(MOD(F2;1)>=VALOR.TEMPO("07:55:00");MOD(F2;1)<=VALOR.TEMPO("08:05:00")); INT(F2)+VALOR.TEMPO("08:00:00"); F2);
SE( E(MOD(F2;1)>=VALOR.TEMPO("11:55:00");MOD(F2;1)<=VALOR.TEMPO("12:05:00")); INT(F2)+VALOR.TEMPO("12:00:00"); F2)
)
)
A primeira linha verifica se há algo digitado. Aqui pode-se incluir uma consistência (verificação) se o digitado é realmente uma data/hora, e usar o operador lógico "E" para consistir tanto data quanto hora, se forem separados.
A segunda linha verifica se é dia de semana ou final de semana (resultados entre 6-sábado e 7-domingo). Se for dia de semana (resultados entre 1-segunda e 5 sexta) executa a terceira linha. Se for final de semana executa a quarta, que tem horários distintos da terceira.
Na terceira linha (vale para a quarta também) você tem os campos em azul que são a hora de saída a partir da qual deve ser arredondada para cima, a hora de saída até a qual deve ser arredondada para baixo, e a hora arredondada.
A segunda fórmula que passei tem a mesma estrutura, porém em vez de considerar as hora de saída, considera a hora base (hora do final do turno), a tolerância de 5 minutos (para cima ou para baixo), e a hora arredondada caso esteja dentro da tolerância.
=SE(F2="";"";
SE(DIA.DA.SEMANA(F2;2)<=5;
SE( ABS(MOD(F2;1)-VALOR.TEMPO("08:00:00"))<=VALOR.TEMPO("0:00:05"); INT(F2)+VALOR.TEMPO("08:00:00"); F2);
SE( ABS(MOD(F2;1)-VALOR.TEMPO("12:00:00"))<=VALOR.TEMPO("0:00:05"); INT(F2)+VALOR.TEMPO("12:00:00"); F2)
)
)
Ambas fazem a mesma coisa mas de formas diferentes. Escolha se prefere trabalhar com horário de baixo e de cima, ou com horário base e tolerância. Copie a form escolhida, cole na planilha, altere os endereços F2 para o endereço real que contém data/hora, e altere os horários (em azul nas fórmulas acima).
Se tiver qualquer dúvida, é só perguntar.
Jimmy San Juan
Nas mensagens que te ajudaram de alguma forma, dê seu LIKE: clique no "positivo" (ícone OBRIGADO).
Se o problema está encerrado, por favor, clique em MARCAR RESOLVIDO.