Notifications
Clear all

Ajuda com MUITOS "SEs" (Ou outra solução)

5 Posts
3 Usuários
0 Reactions
1,121 Visualizações
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Pessoal,
Estou criando uma planilha de controle de Horas trabalhadas mas estou com uma dificuldade para conseguir conciliar uma séria de "SE's", e aqui venho pedir uma ajuda.

O time aqui tem horário flexível e não bate cartão por trabalhar em diversos locais, por isso eu utilizo um Arquivo Excel de um Software onde geramos os Relatórios de Serviço.

Está tudo em anexo para melhor entendimento. O que eu preciso é:

A coluna R do Arquivo "Controle de Horas" tem que me dar o Total de Horas trabalhadas do dia, ou quantas horas ficaram faltando para completar as 8 horas necessárias (Trabalhamos 8 horas por dia).
Vocês vão ver a fórmula que eu apliquei à coluna R (que é um pouco grande), mas ali já consegui calcular corretamente diversas situações.

O problema que não consegui conciliar é em dias onde o funcionário esteve fora da empresa (Tempo Pessoal), que classificamos como "S_On-Leave".

Existe uma série de combinações possíveis (deixei várias combinações de exemplo identificadas em Amarelo), mas mesmo criando uma fórmula tão grande, eu consigo acertar algumas vezes o resultado e em outras não. Na coluna P existe um comentário para dizer se o resultado apresentado está correto ou não, e se não estiver, qual seria o resultado correto.

Alguém consegue me ajudar com uma fórmula que concilie todas as condições possíveis? Talvez acrescentar mais "SEs", ou então usar alguma fórmula que eu não conheça?

Observem que existem sutis diferenças entre as possibilidades, como o lançamento ou não do horário de almoço.

As siglas representam:

B/T - Break Time (Almoço)
S/T - Standard Time (Horário Flexível, mas consideramos o tempo normal como sendo entre 08:00 e 17:00)
O/T - Over Time (Horas Extras - São contabilizadas em 1/1 por enquanto)
T/T - Travel Time (Horas de viagem, que serão ou não contabilizadas de acordo com informação na Aba de Suporte).

A planilha "RawData" é de onde as informações vem. é o arquivo original exportado.

Desde já agradeço pela ajuda.

Att,
Jorge.

 
Postado : 04/01/2017 11:06 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Macabruz, faltou você colocar numa coluna fora da plan "Controle de Horas" os valores que TEM QUE DAR!!
.
E também colocar um comentários sobre os dados da plan, e o que deseja (algo como se estivesse explicando para alguém o que deseja)!! ... Assim quem vai ajudar não precisa ficar alternando entre a planilha e o que você disse aqui no tópico!!!
.
Como seu problema me parece bem complicado, isto ajuda muito!!
.
PS: sempre que preciso utilizar MUITOS SEs, prefiro colocar os dados num canto da planilha e usar ÍNDICE/CORRESP ou PROCV!!
.

 
Postado : 04/01/2017 5:19 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

também estou com mesmo problema em outro topico viewtopic.php?f=20&t=23178 .
Até agora ainda consegui uma solução.
Assim como vc eu consigo acertar algumas vezes o resultado e em outras não.

 
Postado : 16/01/2017 6:26 pm
(@djunqueira)
Posts: 0
New Member
 

Quando forem pedir ajuda é muito importante informar qual a versão do Excel vcs usam, pois várias funções mais avançadas foram inseridas nas versões mais recentes.

 
Postado : 17/01/2017 1:49 am
(@djunqueira)
Posts: 0
New Member
 

Refinei um pouco seus "SE()", mas não compreendi sua lógica p/ na linha 85 ter um S/T de 6 com Total -5 estar errado e na linha 93 ter um S/T de 7 com Total -6 correto.

S/T - Total
6 ==== -5 (linha 85 errado)
7 ==== -6 (linha 93 correto)

Fórmula:

=SE(OU(ESQUERDA(J83;6)=" Note:";A83="Total Hours: ");0;
SE(E(C83="";A83<>"Sat";A83<>"Sun";A83<>A84;A83<>A82);-8;
SE(H83>='Support Sheet'!$C$33;SE(OU(A82="Day";A83=A82);Q82;0)+H83;
SE(E(A83=A84;Q82>0;H83>0;OU(A82="Day";A83=A82));Q82+H83;
SE(E(A83=A82;J83<>"S_On-Leave";A83<>A84;J82="S_On-Leave");SOMA(F83;G83;Q82;1);
SE(E(A83=A82;J83="S_On-Leave";A83<>A84);Q82-SOMA(F83;G83)+SE(J82<>"S_On-Leave";-1;1);
SE(E(A83=A82;J83="S_On-Leave");Q82-SOMA(F83;G83);
SE(E(A83<>A82;J83="S_On-Leave";OU(F83<>0;G83<>0));SE(A83<>A84;1;0)-SOMA(F83;G83);
SE(A83=A82;SOMA(F83;G83;Q82);
SE(OU(F83<>0;G83<>0);F83+G83;0))))))))))

 
Postado : 17/01/2017 4:25 am