Untitled Document

Antes de entrarmos neste mundo complexo de datas e horas em Excel precisamos compreender alguns aspectos básicos de como o Excel manipula datas e horas. Para muitos, datas e horas estão categorizadas como Excel Avançado.

Datas e horas muitas vezes podem se tornar confusas e erros são cometidos quando poderiam ser evitados. Outras vezes complicamos soluções simples com uma fórmula complexa. Veja o exemplo:
A pergunta era de como transformar uma data em dia da semana. Minha resposta foi: =TEXTO(DIA.DA.SEMANA(D1);"dddd")

Uma solução mais simples seria formatar a célula para "dddd". Ambos os métodos estão corretos, mas o mais eficiente é o segundo. Obviamente que a primeira solução introduz duas novas funções que podem ser utilizadas para solucionar outros problemas, mas a complexidade foi desnecessária.

Excel é uma super matriz que se beneficia da capacidade de processamento matemático dos micro-computadores atuais para executar tarefas que no passado só era possível com co-processadores matemáticos.

Como o Excel lida com números é de se esperar que as datas e horas também sejam trabalhadas neste formato. Em outras palavras, quando você vê uma data (ou hora) em Excel, na verdade, aquela data (ou hora) se refere a um número inteiro ou uma fração.

Um problema que geralmente é mal compreendido pelos usuários do Excel é quando temos horas que ultrapassam as 24 horas do dia. Vamos supor que você trabalhou 25 horas em um mês e para cada hora trabalhada você ganha R$10. É fácil ver o quanto você ganhou no mês; porém, o dia tem apenas 24 horas e isso não muda. Portanto se você trabalhou 25 horas, para o Excel você trabalhou 24 horas (um dia completo, isto é, 24/24) mais uma hora (1/24) que é uma fração do dia. Ou seja, você trabalhou 1,04165509259259 horas para o Excel. Agora, multiplique este valor pelo valor de sua hora de salário e o resultado não é R$ 250.

Ao formatar 1,04165509259259 para horas, você obterá 00:59:59 (1 hora). Novamente, o motivo para tal “discrepância” é que não existem as tais 25 horas no dia. Neste caso, 25 horas representam 1 hora da manhã do dia seguinte (24 horas do dia anterior + 1 hora do novo dia).

Este é provavelmente um dos primeiros problemas que qualquer pessoa que já tenha trabalhado com horas no Excel encontra. Para ser justo com o Excel, este não é um problema, mas a falta de compreensão de como o Excel manipula datas e horas. Portanto, no exemplo anterior você precisa converter os valores para a base correta (24 para horas), isto é, 1,04165509259259*10*24 retorna R$ 250 como o valor a ser pago pelas horas trabalhadas.

Do exemplo acima, podemos tirar algumas conclusões. Primeiro que as “24 horas” são representadas pelo número inteiro 1. Qualquer hora dentro de um dia é representada pela fração hora/24 e, consequentemente, o minuto é representado por minuto/1.440 e o segundo por segundo/86.400. Assim sendo, as casas decimais representam a combinação de horas, minutos e segundos dentro de um dia (24 horas).

Se dividirmos o dia em quatro partes, temos 6 horas ou ¼ do dia. A tabela abaixo mostra o valor fracionário para estas quatro partes:


Horas do dia e frações correspondentes

Hora

Fração

00:00:00

0.00

00:06:00

0.25

00:12:00

0.50

00:18:00

0.75


O incremento é de ¼ para cada um dos valores. Ao final de 24 horas, temos 1 dia (24/24). Observe que estes são os decimais e se você formatar o valor 2,75, por exemplo, para horas o total será de 18 horas.Contudo, estes 2,75 representam 2 dias e 18 horas. E não adianta bater no Excel, porque não fará diferença alguma.

Vamos supor que um funcionário iniciou a jornada de trabalho no dia 29/06/2004 e terminou dois dias depois 01/07/2004 às 18 horas. Ao tirar a diferença entre as duas datas o Excel retorna 2,75 (2 dias e ¾ de um dia) e um total de 66 horas trabalhadas (24+24+18 ou 2,75*24).

Pode ser chata a repetição, mas é importante que o leitor compreenda que para o Excel não existem as tais 66 horas. O que existe são 2 dias e ¾ de um dia. E não existe uma maneira melhor de salientar isso do que repetir o que já havia dito.

Agora que já perturbei o seu juízo com as repetições acima, faça o seguinte teste na planilha: digite 0 (zero) em uma célula qualquer e formate-a para data. O que ocorre? A data é 00/01/1900! A primeira coisa que nos vem à cabeça é que é um bug do Excel, pois não existe o dia “zero de janeiro de 1900”! Ou será que existe?

Pelo calendário que conhecemos isso não existe e pode ser considerado um bug. Mas pela lógica utilizada no Excel não poderia ser diferente. Como as horas, minutos e segundos são representados pela fração de um dia, ao formar um dia (a partir da data zero) obtemos 01/01/1900. Se não existisse esta primeira data, ao somarmos as 24 horas ao primeiro dia disponível obteríamos 02/01/1900, ou seja a primeiro serial seria 02/01/1900.

Fica claro, portanto, que ao formatar os 2,75 como sendo uma data obtemos 02/01/1900 18:00:00, ou seja, 2,75 é, na verdade, 18 horas do dia 2 de janeiro de 1900.

Se 00/01/1900 é a primeira data serial, qual é a última data então? Todos devem lembrar do barulho causado pelo “bug do milênio”, não? Pois é, em Excel até a versão 97 isso era visto com um problema e a partir da versão 2000 isso mudou. Os números seriais de datas do Excel a partir da versão 2000 vão de 0 a 2.958.465, ou seja, não precisamos nos preocupar com o próximo bug até 31/12/9999.

Como o Excel representa datas como números seriais, se somarmos 1 a última data disponível o Excel retorna ######## e se subtrairmos 1 da primeira data disponível obtemos novamente ########. Isto não quer dizer que seja impossível escrever 31/12/1899 ou 01/01/10000, porém ao entrar datas fora do intervalo permitido pelo Excel, elas serão tratadas como texto e perdemos a flexibilidade quando precisamos fazer cálculos envolvendo horas e datas.

Em breve estarei de volta com mais dicas de Excel.