Ayuda con función excel

Hola tengo el siguiente. Problema, necesito obtener la diferencia de horas del ejemplo a seguir, como seria la función
29/12/2007 07:00 -
31/12/2007 09:00 igual 50 horas
Y en una macro como seria el código
Esperando me puedas ayudar.
Saludos

1 Respuesta

Respuesta
1
Cuando excel resta 2 fechas internamente lo que esta restando son 2 números que representan días (la parte fraccionaria representa el porcentaje de día transcurrido). [hay una explicacion de esto un poco mas extensa en http://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/1760121/sumar-h-m-s-se-puede ]
Ejemplo:
Si en la celda A1 introduces "29/12/2007 07:00:00"
Y en la celda A2 "31/12/2007 09:00:00" y quieres obtener la diferencia de horas entre esas 2 fechas (restarlas), puedes hacerlo introduciendo la siguiente fórmula en A3: =(A1-A2)*24 (el formato de la celda del resultado ha de ser el general, no una fecha).
Cuando restas 2 fechas obtienes el resultado en días (ten cuidado por que en caso de ser mayor la fecha sustraendo el resultado daría lugar a una fecha negativa. Al restar fechas el excel automáticamente asigna a la celda de resultado el formato de fechas, lo cual da lugar a una representación indeterminada (############) si se mantiene ese formato, pero su lo cambias a general, veras que se corresponde con el numero de días de diferencia (con deciamles), por eso, al multiplicar ese resultado por 24 (numero de horas de 1 día), obtienes la diferencia en horas.
Si recurres a una macro hecha en VB, lo más practico es usar la función datediff. Un ejemplo del uso de esta función (respetando las celdas en las que se encuentran las fechas para el ejemplo anterior) seria este:
Sub Restar_Fechas_Didactico()
Dim FechaA As Date
Dim FechaB As Date
Dim Horas_De_Diferencia As Long
FechaA = Cells(1, 1)
FechaB = Cells(2, 1)
Horas_De_Diferencia = DateDiff("h", FechaA, FechaB)
Cells(3, 1) = Horas_De_Diferencia
End Sub
Sub Restar_Fechas_Eficiente()
Cells(3, 1) = DateDiff("h", Cells(1, 1), Cells(2, 1))
End Sub
Aclaración:
Datediff entrega el resultado en la unidad indicada en el primero de sus parámetros.
Como veras en el ejemplo este es "h", es decir, resultado en horas, pero puedes indicar otros parámetros ("d" para días, "m" para meses, "y" para años, "n" para minutos, "s" para segundos, "ww" para semanas...)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas