A função Excel MOD não funciona corretamente se o valor for 12AM (00.00)

0

então eu escolhi a função MOD para calcular minhas horas trabalhadas onde eu comecei às 20h / AM e terminei às XXh / PM onde, sem a função MOD, eu não conseguia calcular corretamente se eu estava começando às 17h e terminar depois da meia noite. De qualquer forma, não funciona corretamente se eu terminar de trabalhar antes da meia-noite ou depois. Mas se eu terminar de trabalhar exatamente à meia-noite e colocar no valor de 12 AM da célula, isso me dá como resultado 0 usando esta fórmula: = IF (C41 = 0,0, (MOD ((C41-B41) -D41,1) ) * 24) Mas se eu colocar como valor 12 e pressionar enter, ele me dá a quantidade correta de horas trabalhadas, mas também muda o valor para 12/01/1900 12:00:00 AM. Por que é que? É assim que a tabela é:

A       B           C           D       E               F
Date    Shift start Shift end   Break   Total x shift   Total
1-Oct   5:30 PM     12:00 AM            6.5             19
2-Oct   5:30 PM     12:00 AM            6.5 
4-Oct   12:00 PM     6:00 PM            6   

E as fórmulas são:

=IF(C41=0,0,(MOD((C41-B41)-D41,1))*24)

em todas as células da coluna E.

    
por Kerberos 01.11.2015 / 12:08

1 resposta

0

Não sei qual pergunta responder. Você tem pelo menos três perguntas separadas no seu OP. A alteração do valor 12 para 12/01/1900 12:00:00 AM é simplesmente como o Excel funciona. Você deve ter formatado a coluna como Data / Hora, por isso está convertendo o valor inserido para o formato padrão especificado nas suas configurações. Dependendo da versão do Excel que você está usando, você também pode formatar a coluna como simplesmente Tempo, ou modificar o formato para não mostrar a data, como disse o fixer1234.

Por que você acha que o MOD não está funcionando é difícil dizer, já que você não explicou, mas está usando de uma maneira muito estranha, e isso deve lhe causar problemas se você passa 0 (12h) como o primeiro valor. Isso significa que você está tentando dividir 0, o que não pode ser feito. E você não precisa disso, de qualquer forma.

Sua fórmula, semelhante ao que Tyson indicou, pode ser simplesmente

=if((C1-B1)<0, C1+12-B1, C1-B1)

Observe que você deseja adicionar 12 horas no resultado "verdadeiro", não 24, como a Tyson declarou. Você desejará formatar as colunas B, C e D como seu formato normal de hora, mas para as colunas E e F, você provavelmente desejará eliminar os designadores am / pm.

As colunas de resultados devem permanecer formatadas como Tempo porque, caso contrário, o Excel executará a matemática numérica no valor de datasia que o Excel está realmente armazenando nos bastidores, em vez da data e os resultados ficarão todos instáveis. Por exemplo, das 12h às 6h30 é 0,27 se a coluna do resultado estiver formatada como um campo numérico. Altere-o para o formato de hora e ele exibe corretamente 6:30.

    
por 15.08.2017 / 19:50