Resta de Horas y formato personalizado en Hoja Excel 2007

Esta es contexto:
Tengo dos celdas con formato "hh:mm" llamadas Hora Inicio y Hora Fin, la resta de las 2 celdas me da como resultado la celda Tiempo el cual tiene formato "00.00" (en horas).
Esta es la pregunta:
Hay alguna forma de ingresar las dos primeras celdas (Hora Inicio - Hora Fin) sin necesidad de ingresar los dos puntos para diferenciar minutos y horas, ¿de tal forma que no afecte el resultado en Horas de la tercera celda (campo Tiempo)?

PD: Intente modificando el formato de la celda pero la resta de las horas en el tercer campo me trae problemas.

1 respuesta

Respuesta
1

¿Puedes poner un ejemplo de datos y qué tienes en la tercera celda, una fórmula, cuál fórmula?

¿De qué forma quieres ingresar las horas y los minutos?

Hola, bien este es el ejemplo:

en la 1era celda: (hora de inicio) (V2)

07:00 (7 de la mañana)

en la 2da celda: (hora de fin) (W2)

15:00 (3 de la tarde)

y en la 3era celda:(Tiempo)

8.00 (Resta de la 1era y la 2da celda pero en formato horas)

En resumen el resultado de la tercera celda es en formato horas y la formula para el calculo es la siguiente:

Ejem: con celdas adyacentes: =SI(W2<V2,(W2-V2)*24+24,(W2-V2)*24)

El problema es que tengo que ingresar datos en la primera y segunda celda en formato horas, es decir en la primera celda (hora de inicio) ingresar los dos primeros números de horas luego los dos puntos y luego los dos números de segundos (hh:mm), lo que seria ideal es poder solo ingresar números y que automáticamente me separen las horas y minutos sin tener que ingresar los dos punto ":" , por ejemplo:

ingreso en la celda (hora de inicio) el numero 0700 y se transforma en--> 07:00 (hh:mm), lo mismo para la hora de fin.

Espero poder haber sido lo mas claro posible en tal caso por favor espero tu respuesta experto y no antes agradecerte por la respuesta dada.

Saludos.

Y si en lugar de considerar hora, simplemente lo manejas como enteros, en tu ejemplo:

v2 w2 x2

07:00 15:00 08:00

15:00 07:00 16:00

Con números enteros:

V2 W2 X2
7 15 8:00
15 7 16:00

con fórmulas

Con datos
V2 W2 X2
7 15 8:00
15 7 16:00
Con fórmula
V2 W2 X2
15 7 =HORANUMERO(SI(W2<V2,24-V2+W2&":00",W2-V2&":00"))
7 15 =HORANUMERO(SI(W3<V3,24-V3+W3&":00",W3-V3&":00"))

De esta forma ya no tienes que poner 7:00.

¿Manejas minutos? Si también manejas minutos habría que convertirlos, para presentarlos, pero si solamente manejas horas, la fórmula te sirve.

Saludos. Dam
Si es lo que necesitas.

Hola experto, te comento que es buena la idea pero los campos que manejo también tienen minutos, en el caso del resultado..éste se viene manejando en horas, adjunto ejemplo:

V2 W2 X2 (resultado)
07:30 08:00 00.50 (resultado de la resta en decimales/ Horas)
15:00 07:00 08.00 (resultado de la resta en decimales/ Horas)

El tema de manejar el resultado en formato de horas es para llevar un control ampliado de la información porque el mismo contiene muchas filas con registros que contiene Horas de Inicio y Fin para obtener un resumen de tiempos por proceso.

Agradeciéndote de antemano por la respuesta dada Experto Dam.

Pero si no quieres pone : para indicar los segundos, ¿cómo los quieres poner?

Por ejemplo:

ingresar la hora 7 y media:

07:30 (En este caso tengo que poner los dos puntos osea digitar 07 luego digitar ":" y finalmente digitar el numero 30)

Lo que quisiera es solo digitar los números, por ejemplo:

Solo digitar 0730 y automáticamente me muestre 07:30 en la celda al cambiar de posición de celda.

Sigue las Instrucciones para poner la macro en worksheet
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
4. Del lado derecho copia la macro

Private Sub Worksheet_Change(ByVal Target As Range)
'pone : por.dam
If Not Intersect(Target, Columns("V")) Is Nothing Then
    Application.EnableEvents = False
    If IsNumeric(Target) Then
        largo = Len(Target)
        If largo = 4 Then
            Range(Target.Address) = Left(Target, 2) & ":" & Right(Target, 2)
        Else
            If largo = 3 Then
                Range(Target.Address) = "0" & Left(Target, 1) & ":" & Right(Target, 2)
            End If
        End If
    End If
    Application.EnableEvents = True
End If
End Sub

Saludos.Dam

Es justo lo que necesitaba experto Dam, pensé que podría hacerse mediante formulas pero por mas que trate no he podido, igualmente mediante macros es mucho mejor, agradecido enormemente por tu genialidad. Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas