Desenvolvimento - Office
Manipulando data e hora no Excel
O que mais fascina no Excel é a simplicidade. As soluções, em geral, envolvem o uso de fórmulas relativamente fáceis. Um bom exemplo é a manipulação de datas e horas.
por Fábio ViannaO que mais fascina no Excel é a simplicidade. As soluções, em geral, envolvem o uso de fórmulas relativamente fáceis. Um bom exemplo é a manipulação de datas e horas.
Na planilha abaixo,
quero controlar as horas de entrada e saída de funcionários de minha empresa. Tudo
estaria bem se não fosse a célula H10, onde o número "estourou".
Naquela data, o colaborador entrou às 8h30 e só saiu às 2 da manhã do dia seguinte.
Como na fórmula calculamos a diferença de horas, "na cabeça" do Excel o cálculo
foi o seguinte: 2h – 20h30 = horário negativo.
Nesse caso, é necessário configurar uma opção que não funciona se não estiver marcada
em todas as máquinas que usarem este arquivo. Para nós, é óbvio que a pessoa saiu
no dia seguinte. Para o Excel, não, pois informamos naquela célula apenas um horário, e não o dia e a hora de saída.
O Excel possui um contador de datas interno que começa em 1 na data 1/1/1900. Peguemos
como exemplo o dia 15/11/2005. Para o Excel, ele equivale ao número 38.671. Como
ninguém lê datas desta forma, formatamos a célula para enxergarmos o dia, mês e
ano, somente mês e ano, ou somente mês (são dezenas de possibilidades - na célula
C2 do exemplo acima, formatei para aparecer o mês; na B8 em diante somente o dia;
na C8 em diante somente o dia da semana, etc).
As horas
No Excel, as horas são tratadas como um número decimal entre 0 e 1. Por exemplo,
meio-dia é 0,50, meia-noite é 1. Na planilha acima, a pessoa entrou para trabalhar
às 0,354166666666667 (às 8h30) e saiu às 0,0833333333333333 (às 2). Por isso, a
diferença foi negativa.
Mas notem que em nenhum momento informamos que a pessoa entrou às 0,3541 do dia
3 e saiu às 0,08 do dia 4. Como resolveríamos isso, de forma bem simples? Fazendo
o que, normalmente, as pessoas desconsideram justamente por ser a mais simples:
somando o número inteiro, referente ao dia, ao decimal, referente à hora.
Então, para ficar ideal, colocamos que a pessoa entrou em 38659,3541 e saiu em 38660,08. Agora basta subtrair um do outro que temos o tempo real trabalhado.
Nem preciso dizer que devemos formatar estas células para mostrarem apenas horas (lembre-se apenas de que a hora deve ser informada com o formado dd/mm/aa hh:mm).
Para finalizar:
1) Na hora de formatar as horas totais no mês (célula C3 acima), formate com a opção de horas maiores de 24, senão o Excel mostra no máximo 24 horas. Na formatação personalizada coloque [hh]:mm;
2) Na hora de multiplicar as horas pelo valor/hora, lembre-se de multiplicar por 24, afinal o Excel mostra horas entre 0 e 1. Se a pessoa trabalhou 1 dia, na verdade foram 24 horas. Se não multiplicar por 24, ela receberia o valor de uma hora (1 x salário/hora) e não o total (1 x 24 x salário/hora).
- Data Bars para MS-AccessAccess
- Funcionalidades do Office usando Visual Studio for Office – Parte 3C#
- Funcionalidades do Office usando Visual Studio for Office - Parte 2C#
- Estenda as funcionalidades do Office com o Visual Studio for OfficeC#
- Como evitar processos pendurados na automação do ExcelOffice