Hojas de cálculo en Excel - página principal

Trabajando con horas, minutos, y segundos

Uno de los dolores de cabeza con los que nos hemos encontrado quienes hemos empezado con excel, ha sido trabajar con unidades de tiempo, para calcular horas de espera, tiempo trabajado, descansos, etc. Al principio, por falta de conocimientos, nos planteamos soluciones inverosímiles, que si bien funcionan, no siempre nos permiten obtener los mejores resultados, en especial si trabajamos con diferencias horarias superiores a 24 horas. Es por eso, que excel nos provee de una herramienta apta para el cálculo de horas, minutos y segundos, de una manera muy sencilla.

Imaginemos que tenemos esta tabla en excel (los datos de las columnas C y D tienen formato de h:mm):


¿Cómo podemos calcular la diferencia horaria entre la hora de entrada y la hora de salida?. Pues de una forma muy sencilla. Tan solo tendremos que restarle a la columna D, la columna C, y darle un formato especial:


¿Qué formato hay que darle a la columna E?. Pues este [h]:mm

Para ello, seleccionaremos desde E4 hasta E8, y en el menú Formato, dentro de la opción Celdas..., y en la pestaña Número que es la que nos sale en primer plano, por defecto, en la categoría Personalizada, seleccionaremos la que aparece en la siguiente imagen (si deseamos controlar no solo horas y minutos, sino también segundos, entonces seleccionaremos la opción que aparece arriba como [h]:mm:ss):


La suma total de horas que aparece en la celda E9, será una suma normal, pero a la que le habremos dado el mismo formato [h]:mm.

¿Y cómo podemos obtener las horas y fracciones de hora?. Ya sabéis que las 7:15, son 7,25 horas. Las 7:30 son en realidad 7,5 horas, y así sucesivamente. Mirad la siguiente imagen:


En F4 simplemente estamos multiplicando el dato de celda de la columna anterior, por 24. Este dato deber tener formato numérico, no de [h]:mm.

La cosa se complica un poco más, cuando queremos controlar por ejemplo la hora de entrada y salida de un trabajador, o un control horario de cualquier otro tipo, donde la entrada y la salida se realizan en fechas diferentes, y donde hay una diferencia horaria superior a las 24 horas. ¿En realidad es tan complicado?. Para nada, es bastante sencillo, una vez le hemos pillado el truco.


Fijaos que simplemente estamos sumando día y hora de salida, y a ese dato, le restamos el día y la hora de entrada (lo podéis ver en la barra de fórmulas de la imagen anterior, donde se muestra la fórmula de la celda F4). El dato de esa columna, deberá llevar también el formato [h]:mm.

Creo que con esto, ya tendremos resueltas nuestras necesidades en cuanto a la forma de operar con unidades de tiempo, horas, minutos, y segundos.



161 comentarios:

Pepe dijo...

No sabes la de veces que he necesitado sumar y restar tiempos.
¿Donde estabas antes?

Gracias.

Javier Marco dijo...

Hummmmm, pues estaba preparando el artículo para el blog, jajajajajaja. Ya sabes que el tiempo (horas, minutos, y segundos) son limitados, y uno no puede estar en todas partes ;-)

Gracias por tu comentario.

Norberto dijo...

Muy útil.
Te dejo dos inquietudes:
1. Excel no permite calcular fechas anteriores al 1/1/1900, pero sí hasta el 31/12/9999 (ridículo, ¿no?). ¿Has encontrado alguna solución o habrá que escribir a Microsoft para que lo modifiquen?
2. ¿Cómo puedo hacer para que una celda me devuelva el nombre de la hoja que está a la izquierda de la que estoy trabajando actualmente?
Desde ya, gracias, un blog muy útil

Javier Marco dijo...

Hola. Gracias por tu comentario.

Efectivamente una de las limitaciones para el tratamiento de fechas en excel, es esa que comentas, tal y como lo documenta Microsoft en su ayuda. La verdad es, que ante una respuesta como la que da Microsoft, te planteas no buscar una solución al problema (si el padre de la criatura dice que nanai, mejor no te esfuerces en buscar solución).

Respecto al otro tema que propones, puedes echarle un vistado a esta entrada, para saber el nombre de la hoja activa. Si lo que deseas es obtener el nombre de la hoja inmediatamente anterior a la hoja con la que estás trabajando, prueba esta función personalizada (ponla dentro de un módulo):

Function NombreHojaAnterior()
'Buscamos el nombre de la hoja anterior
NombreHojaAnterior = ActiveSheet.Previous.Name
End Function

Para llamar a la función, simplemente escribe esto en cualquier celda de la hoja:

=NombreHojaAnterior()

Salu2

nabis dijo...

Hola Javier.
Impresionante blog que he "favoritizado" de inmediato.
Gracias.

Tengo una duda asociada que no consigo resolver:

en A1 dato: abril-08 (1/4/08 con formato mmmm-aa)
en A2 fórmula: =CONCATENAR("Factura 1: ";E2)
Resultado pretendido:
Factura 1: abril-08
Resultado obtenido:
Factura 1: 39539

¿Cómo puedo hacer para que E2, dentro de la fórmula, tenga formato de fecha?
Hace tiempo vi en algún sitio que se podía expresar dentro (de la fórmula) el formato en que debía aparecer esa parte, bien para que tenga un número fijo de decimales ¿cómo sería esto también?
Me refiero a algo parecido a esto...:
=CONCATENAR("Factura 1: ";E2[mmmm-aa])
... pero que funcione. ;)

Gracias otra vez, a ver si puedes echarme una mano.

Javier Marco dijo...

Muchas gracias por tu comentario.

Lo que planteas, puedes solucionarlo con la función TEXTO (yo la utilizo mucho). Tan sencillo, como hacer esto (me olvido de la función CONCATENAR, porque esto otro es exactamente lo mismo, ya que estoy concatenando con el operador "&"):

="Factura 1: " & TEXTO(E2;"mmmm-aa")

Salu2

Regio dijo...

Me puedes ayudar en calcular en minutos y segundos, por ejemplo: en tres celdas capturo un minuto 20 segundos con este valor "1.20" al sumar las tres celdas me da como resultado 3.60, que formula necesito relizar para que el resultado me de a 4 (representando 4 minutos).


te agradeceria mucho tu ayuda.

Javier Marco dijo...

Para regio:

Simplemente deberías cambiar la notación con la que introduces las unidades de tiempo. En lugar de usar 1.20, utiliza 1:20 (separando las horas, los minutos, y los segundos, con los dos puntos verticales).

Luego sigue los consejos del artículo, para operar con unidades de tiempo.

Emiliano dijo...

Tengo una duda que no me la puedo sacar.

Yo tengo un estacionamiento. Sé cuando un auto entra y cuando sale, por ende puedo calcular la permanencia dentro del estacionamiento restando "Hora Salida" - "Hora entrada".
Ahora, necesito calcular cuantos autos tuve dentro del garage en los rangos horarios. Por ej..

Cuantos autos tuve de 9 a 10? cuantos de 10 a 11, así sucesivamente, para luego terminar de armar un gráfico de barras y ver en que horario es que en el estacionamiento tuve más autos.
Gracias

Javier Marco dijo...

Lo que pretendes hacer, puedes solucionarlo con la función BDcontar.

Salu2

Campurriana dijo...

Lo he encontrado útil, Javier. Muchas gracias. Tengo examen esta tarde de informática y penita no haberte encontrado antes...
Volveré por aquí.
Un saludo.

Javier Marco dijo...

:-) Espero que apruebes...

Muchas gracias por tu comentario.

PD: Recuerda hacer prácticas, no vaya a ser que te presentes solo con la teoría en el exámen.

Saludos.

Anónimo dijo...

TE CORONAS REY SI ME SOLUCIONAS ESTO:

UN CAMION LLEGA A LAS 13 HRS DEL DIA 17-07, Y SALE A LAS 17:20 DEL 18-07, SON 16 HORAS, PERO LA DIFERENCIA ESTA Q AQUI SE TRABAJA DE LAS 8AM A LAS 20HRS, CUAL ES LA FORMULA....

SALUDOS

ALEJANDRO
CHILE

Javier Marco dijo...

En lugar de coronarme rey, puedes invitarme a una "Coronita" :-)

Mira a ver si esto que te dejo en el siguiente enlace, resuelve tu problema:
http://www.megaupload.com/es/?d=PJRWQIAM

Salu2

Anónimo dijo...

hola, necesito la ayuda de alguien, estoy desesperada, Necesito llenar una planilla, y despues de calcular los minutos tarde del empleado tengo que multiplicar cada minuto por $0.35 para poder descontarlo del salario, el problema es que no se como multiplicar minutos (00:02) por los $0.35, ni se si es posible incluso.

Javier Marco dijo...

Prueba esto:

Pulsa Alt+F11 y entra en modo VBA. Créate un módulo, y pega esa función en el libro con el que estás trabajando el tema de pagar los minutos x 0,35$:

Function minutos(celda As Range)
dato = CDate(celda)
datos = Split(dato, ":")
minutos = datos(0) * 60
minutos = minutos + datos(1)
minutos = minutos + (datos(2) / 60)
End Function

Luego cierras el modo VBA, y te vas a una celda cualquiera. Allí llamas a la función, de esta forma:

=minutos(A1)

(He supuesto que en A1 tienes el dato de tiempo, con sus horas, minutos, y segundos, ...por ejemplo, algo como esto: 00:23:00).

De esa forma ya tendrás los minutos en formato decimal.

También puedes hacer esto:

=minutos(A1)*0.35

Salu2

Anónimo dijo...

Exelente la solución que muestras para obtener el resultado entre dos horarios Gerate!!
¬ Espero me puedas ayudar ¬
Necesito convertir las horas de 60 minutos a 100 minutos, y calcular la diferencia entre una fecha+hora_Inicial y Fecha+hora_Final.

Espero tus muy buenas sugerencias fco1340@yahoo.com.mx

Javier Marco dijo...

Excel solo opera con unidades de tiempo reales, así que veo difícil, por no decir imposible, que eso que pretendes, y que no tiene sentido, pueda llegar a realizarse.

En todo caso, como única solución, cabría la posibilidad de contruir alguna función personalizada, pero te dejo que lo investigues a partir de lo que se comenta en el artículo.

Para pasar de 60 min. a 100 min, puedes añadir esta línea a la función anterior que le dejé a otro usuario (sería la última línea de la función):

minutos = minutos * 100 / 60

Salu2

Anónimo dijo...

HOLA, GRACIAS, MUCHAS GRACIAS JAVIER

Anónimo dijo...

holap:

Espero este bien, he revisado tus soluciones a problemas y me parecen buenas, pero tengo otro tipo de problema con los tiempos, espero me puedas ayudar.
Tengo que restar los tiempos de unas imagenes, el formato es: hh:mm:ss:cc las cc son cuadros de imagen por segundo y en un segundo hay 30 cuadros, ya intente pero no me sale la formula, espero me puedas ayudar.

Gracias.

Anónimo dijo...

holap de nuevo:

se me paso dejarte un ejemplo, ahi te va:

2:12:00:20
-1:00:01:25
--------------
1:11:58:25


Espero me puedas ayudar
Salu2

Bato dijo...

Ela rticulo esta muy bien, me ha venido bien para conseguir parcialmente lo que quiero.

Basicamente lo que me falta es restarle a un resultado por ejemplo si hago de 7:00 a 14:00 son 7 horas, si a eso le resto 7:45 (la jornada) el excel me dice que he hecho 23:15 horas extras en lugar de usar un numero negativo y decir que me faltan -0:45
¿Sabes como solucionar eso?
otra cosilla que me falta es convertir cualquier cantidad de horas extras (desde 5 minutos hasta 1:30 aprox) a centesimal, por ejemplo media hora es 0.50
Si me puedes ayudar con eso, seria una grandisima ayuda ya que me ahorraria muchisimo trabajo.

Un saludo

daniel dijo...

Hola Buenas Noches, soy principiante y no tengo mucha idea de hacer formulas y mi trabajo no me da tiempo para romperme el coco si alguien me puede ayudar lo agradezco.
necesito sacar horas extrasteniendo en cuenta que:
hora entrada 8:00am
hora salida 4:00pm
horas diurnas 6:00am a 8:00am y
4:00pm a 6:00pm
horas nocturnas de 6:00pm hasta
6:00am
me gustaria que fuera automatico nada mas colocar hora de entrada y salida gracias de antemano

cristian dijo...

Me sirve mucho esta información para mi trabajo de Excel.
muchas gracias socio.

Javier Marco dijo...

Muchas gracias por tu comentario.

Por cierto, como blogger me informa de uvas a peras de los comentarios vertidos en el blog, comentar que los últimos comentarios no los había visto, pero creo que todos o casi todos, están debidamente contestados en los diversos artículos del blog, que versan sobre temas de control horario, tiempo, etc.

Anónimo dijo...

Hola!
Me sirve de mucho esta informacion, pero tengo otra duda, como puedo hacer para insertar un digito o un caracter entre dos numeros que estan en una celda :
EJEMPLO
A
170945 a esta cifra le quiero insertar los 2 punto.
A
17:09:45

SALUDOS

Javier Marco dijo...

Gracias por tu comentario.

Mírate los comentarios de este artículo donde hablo de como convertir unidades de tiempo, porque un usuario preguntaba lo mismo que tú, y le contesté. Es muy sencillo échale un vistazo.

Un saludo.

Anónimo dijo...

Tengo una duda que me esta aniquilando el día de hoy. Tengo un número que representa minutos (6235.85) y quiero pasarlo a Formato Horas:Minutos:Segundos, hay alguna forma de hacer esta transformación.

Muchas gracias desde ya!
Saludos
Rodrigo

Javier Marco dijo...

Lo tienes en un artículo del blog que tiene por título: convertir unidades de tiempo, a formato hh:mm:ss

Anónimo dijo...

Muchisimas gracias

Rodrigo

ABELARDO dijo...

Saludos y gracias, me ahorre bastante trabajo en calculos de hrs extras.

Javier Marco dijo...

Muchas gracias por vuestros comentarios.

Anónimo dijo...

Hola Javier, antes que nada te felicito por el excelente aporte que haces con tu página. Mi pregunta es similar a la Alejandro de Chile del 29 de Julio, vi la fórmula que le pasaste y esta ok, ahora tengo un problema para agregar el dato de que en horario hay una hora de descanse y para omitir sábados y domíngos, no se si me explico.
Espero tu respuesta.
Muchas gracias!

Javier Marco dijo...

Gracias por tu comentario.

Échale un vistazo a este artículo donde explico como llevar un control horario de empleados.

Anónimo dijo...

Gracias Javier....johas de calculo...queda agregado a mis favoritos!

Javier Marco dijo...

Muchas gracias. Se agradece :-)

E=MB² dijo...

Hola Javier, tengo una pregunta tecnica...

Como sacar en excel el % de tiempo muerto... existe alguna opcion en las formulas para hacerlo? por ejemplo:

Me reportan 20 minutos de tiempo muerto, esto equivale a .33 hrs aprox. X 100 (que es el 100% esperado que se trabaje la maquina) entre las horas trabajadas = a % de tiempo muerto. (todo esto con calculadora)

Bueno lo que quiero es saber como le puedo hacer para traducirlo a excel y que el software me de el resultado solamente registrando los 20 minutos... tu asesoria me ayudaria mucho...

Me puedes ayudar?... sale cues! Saludos!

Javier Marco dijo...

Hola E=MB2.

Es muy sencillo, una vez le pillas el truco. Imagina que en A1 tienes la cifra que indicas:

A1 = 00:20:00 (este dato de los 20 minutos, debe tener formato hh:mm:ss, para lo cual, te sitúas en esa celda A1, vas a Formato ---> Celdas ---> pestaña Número, y seleccionas en la categoría Hora, por ejemplo, el primer tipo que te aparece arriba, el que pone *13:30:55).

Luego en A2 escribes esta fórmula:

A2 = A1*24*100

A esa celda A2 le debes dar formato numérico (como en el caso anterior, pero en lugar de seleccionar la categoría Hora, seleccionas Número, y eliges cualquiera de los tipos que te aparecen allí, por ejemplo el que pone -1234,10).

Cuando hayas hecho eso, en la celda A2 aparecerá 33,33. Ese es el porcentaje de tiempo muerto de la máquina, si se para durante 20 minutos.

Otra opción es poner en A2 esto:

A2 = A1*24

Y en lugar de darle a esa celda (a A2) formato numérico, le das formato de Porcentaje). En este caso, en la celda A2 te aparecerá 33,33% (observa que en este caso te añade el símbolo del porcentaje).

Saludos.

Campurriana dijo...

Javier, he vuelto por aquí después de tanto tiempo...
Muchas gracias por tus consejos y decirte que finalmente aprobé. Ahora a seguir estudiando, que nunca es suficiente...
Felicidades de nuevo y pasaré por aquí. Feliz 2009.

Javier Marco dijo...

Hola Campurriana.

Me alegro muchísimo que aprobaras :-)

Anónimo dijo...

Hola,tengo una duda y no salgo,en una factura para una semana tengo horas iniciales y horas finales y a la duración le resto 0,5 el problema es que los dias que no se ha trabajado me sale duración -0,5 horas.Necesitaria alguna formula o alguna función para que cuando sean horas negativas en el resultado, se pasen a cero horas.(una solución es cambiandolos manualmente, pero no interesa esa opción porque mas adelante tengo el mismo problema.)
Muchas grácias

Javier Marco dijo...

Suponiendo que la duración entre el tiempo final y el inicial, la tuvieras en la celda A1, podrías hacer algo tan sencillo como esto:

=SI((A1-0,5)<0;0;A1-0,5)

De esa forma, si al restarle 0,5 horas a la duración, obtienes un valor negativo (menor que cero), entonces te colocará un cero en esa celda, y sino, pues el dato que se obtenga.

Un saludo.

Noah dijo...

Muchas grácias,llevaba desde ayer dandole vueltas y no encontraba como pasar el valor a 0.Lo tenia escrito en un papel la fórmula más o menos pero me faltaba el toque de la función que no la encontraba.
Es que cuando llevas por la mañana y por la tarde con el ordenador y hacer un programa con el excel por una apuesta con los colegas, la verdad es que empiezan a cruzarse los ojos.

Muchas grácias

Noah dijo...

tengo otra duda:
tengo una columna de salida de viaje(A), otra de entrada al trabajo (B), otra salida de trabajo (C), y otra de llegada de viaje (D).
Para calcular las horas de viaje se utilizaria la fórmula
(B-A)+(D-C)
Pero el problema que tengo es que no se sale de viaje y se vuelve el mismo dia entonces esta fórmula no me sirve, porque a veces falta o la hora de llegada del viaje o la de salida, o la de las 2.

muchas grácias otra vez

Javier Marco dijo...

Hola Noah.

Al final de este artículo está explicado: trabajando con horas, minutos y segundos

Saludos.

ariel dijo...

hola javier yo quisiera saber como puedo calcular el valor de las horas extras al 50% y al 100% las horas normales de trabajo son 8:45
pasando las 8:45 me corren al 50% y
despues de las 9:45 de trabajo me enpiesan a correr al 100% como puedo hacer para calcular esto

desde ya muchas gracias espero tu respuesta

Javier Marco dijo...

Hola Ariel. Échale un vistazo a este artículo donde explico como lleva un control horario.

Un saludo.

César dijo...

Excelente ,fantastico tu blog, felicitaciones por esta excelente idea.....
Buscaba una solucion para mi problema , y la he encontrado,y resulta ser muy facil:
" En F4 simplemente estamos multiplicando el dato de celda de la columna anterior, por 24. Este dato deber tener formato numérico, no de [h]:mm. "
Pero me dejo otra duda jejejej
¿Por qué multiplicarlo por 24?( matematicamente hablando )

Gracias totales Javier

Javier Marco dijo...

No deberías buscarle mucha explicación a algo que ha hecho Bill Gates :-)

Supongo que el hecho de multiplicar por 24, es porque un día tiene 24 horas ;-)

Anónimo dijo...

TENGO LISTA MI PLANILLA CON EL CALCULO DE HORAS TRABAJADAS PERO CUANDO MULTIPLICO EL VALOR DE LA HORA POR POR LAS HORAS TRABAJADAS ME DA EL EL TOTAL PERO CON FORMATO DE HORA CRE.. EJEMPLO. MULTIPLICO $7.000 X 5:13 Y ME DA 36166:40
QUE HAGO PARA CAMBIAR ESE FORMATO????

Javier Marco dijo...

Échale un vistado a este artículo de control horario, donde verás algunos ejemplos de lo que buscas.

Paola dijo...

Muchas gracias por la información... Hace tiempo descubrí cómo hacerlo, pero ahora no lo recordaba y lo estaba necesitando. Vaya te encontré a tiempo. Gracias

Javier Marco dijo...

De nada. Me alegro que te haya sido útil.

MANUEL ANDRES dijo...

tengo un problema y es que cuando sumo los min utos que sobrepasan las 24 horas (1 Dia) me aparece como resultado los horas siguientes, es decir si el resultado es 26:30 hrs en la celda me aparece 2:30 y si miro dentro de la celda me aparece lo siguente (01-01-1900 02:30:00) favor ayudame pliss.. ya prove dejando en formato hmm y nada.... help....

Anónimo dijo...

Gracias!

seba dijo...

hola javier.
tu blog es increible... sobre todo para la gente que no tiene idea de excel como yo jajajaj.
tengo una pregunta. yo trabajo de noche en un bar y quiero calcular mis horas semanales pero no se como hacerlo.
todas las noches yo empiezo a trabajar a las 7 pm y termino a las 3am... cuando trato de hacer el calculo no me resulta (hora de entrada = 7:00 hora de salida = 03:00)
espero me puedas ayudar y desde ya muchas gracias

Javier Marco dijo...

Hola Seba.

Aquí tienes un artículo donde explico como llevar un control horario.

Saludos.

Anónimo dijo...

Javier!! increible lo tuyo. Gracias por tu blog. Interesantísimo. ENHORABUENA DE CORAZÓN!

andres dijo...

hola
sabes hago la formula pero no me resulta me aparece #!valor!. formatee las celdas pero es lo mismo. mi problema es como lo planteo alejandro salbo que yo quiero saber cuanto espero el camion. es decir tengo cuatro celdas fecha de entrada,hora de entrada, fecha de salida y hora de salida y el final seria cuanto espero el camion.
me puedes ayudar?

Javier Marco dijo...

A Alejandro le dejé un ejemplo en este enlace: http://www.megaupload.com/es/?d=PJRWQIAM

Aparte de eso, fíjate en la fórmula que aparece en la barra de fórmulas de la última imagen que hay en el artículo (este es el enlaec: http://bp0.blogger.com/_EKImKCCi_hc/SDPgN-3gTMI/AAAAAAAAAKA/NrGyKPIcrZ8/s1600-h/diferencia-horaria-superior-a-24-horas.gif)

Lo que aparece en esa imagen, creo que es justo lo que necesitas.

Anónimo dijo...

Es un poco de lio para entenderla, por ahialguno lo puede mejorar, para que sea legible y
mas corto es una macro. en la cual
insertamos dos horas una en celda c4 y otra en d4, te pone la diferecia de hora en f4, espero que les sirva.


Sub CALCUALR()
Dim HORAINI As String
Dim HORAFIN As String
Dim HORARES As String
Dim HORA1 As Integer
Dim HORA2 As Integer
Dim MINUTO1 As Integer
Dim MINUTO2 As Integer
Dim I As Integer
Dim varhora1 As Integer
Dim varhora2 As Integer
Dim varmin1 As Integer
Dim varmin2 As Integer
Dim hora As Integer
Dim minuto As Integer
Dim varfin As String
Dim acumulador As Integer


Range("D4").Select
If Len(Range("D4").Text) = 5 Then
HORAFIN = ActiveCell.Text
End If
Range("C4").Select
If Len(Range("D4").Text) = 5 Then
HORAINI = ActiveCell.Text
End If
' DESCOMPONGO LAS HORAS LUEGO LAS GUARDO EN HORAFIN Y LAS SUMO
For I = 1 To 2
varhora1 = Mid(HORAINI, I, 1)
HORA1 = HORA1 & varhora1

Next I
For I = 1 To 2
varhora2 = Mid(HORAFIN, I, 1)
HORA2 = HORA2 & varhora2

Next I
For I = 4 To 5
varmin1 = Mid(HORAINI, I, 1)
MINUTO1 = MINUTO1 & varmin1
Next I
For I = 4 To 5
varmin2 = Mid(HORAFIN, I, 1)
MINUTO2 = MINUTO2 & varmin2
Next I
HORA1 = HORA1 * 60
HORA2 = HORA2 * 60
hora = (HORA2 - HORA1)
minuto = (MINUTO2 - MINUTO1)

If minuto > 0 Then
HORAFIN = (hora / 60) & ":" & minuto
End If

If minuto < 0 Then
HORAFIN = (hora + minuto) / 60
For I = 1 To Len(HORAFIN)
varfin = Mid(HORAFIN, I, 1)
If varfin = "," Then
j = I + 1
Exit For
Else
acumulador = acumulador + varfin
End If
Next I

varfin = HORAFIN - acumulador
varfin = CInt(varfin * 60)
HORAFIN = acumulador & ":" & varfin

End If
Range("f4").Select
ActiveCell.FormulaR1C1 = (HORAFIN)
End Sub

zronald11 dijo...

Hola buenas noches amigo Javier, tengo un problema con esto de las unidades de tiempo, te cuento mi caso. tengo estos tiempos
03:17:03
00:02:50
00:52:35
00:02:06
00:08:29
00:00:56
01:45:16
00:26:23
los cuales excel los reconoce de esta forma respectivamente.
2.136840278
1.001967593
2.036516204
1.001458333
1.005891204
1.000648148
3.073101852
1.018321759
lo que necesito es una función o fórmula que me reconozca cual de los tiempos es el mayor, uso la función MAXA pero lo que me reconoce es el numero mayor pero en el formato que te mostre de segundo. en resumen, en ves de reconocer como tiempo mayor este 03:17:03, reconoce es este 3.073101852, que es equivalente a esto 01:45:16. Muchas gracias por tu atención y ojala y me puedas ayudar tú o alguno de los amigos del foro. Suerte a todos.

sebastuc dijo...

Hola como estás.. muyyyy buena tu pagina !!
tengo una duda y espero la puedas resolver. tengo una playa de estacionamiento para motos. necesito hacer una planilla donde indica HORA DE ENTRADA, HORA DE SALIDA, TOTAL DE HORAS y TOTAL A COBRAR. no se como hacer la formula para que me saque el precio a cobrar. tenemos en la playa una tolerancia de 10 minutos. O SEA... si ingresa a las 10:30 y se retira a las 11:40 solo se le cobra 1 hora ($1). pero no se como hacer para que cuando multiplico TOTAL DE HORAS por el valor de la hora ($1) tenga en cuenta que hay una tolerancia de 10 minutos.
no se si me explico bien. perdon. y muchas gracias !

Javier Marco dijo...

Hola Sebastuc.

Aquí tienes un ejemplo más completo sobre como controlar una jornada laboral. Puedes adaptar ese ejemplo, añadiendo la tolerancia de + 10 minutos.

Anónimo dijo...

Hola!
Me gustaría saber si puedo realizar esto:
A partir de estos datos; 4 minutos, 30 segundos obtener 4,5 minutos.
Pero lo quiero realizar como un hypervinculo o con un macro (que no se como funcionan).
La forma que me gustaría que quedara es que se me habra una ventana en la celda que seleccione, en la que pueda introducir minutos en una celda y segundos en otra y me de el resultado en en minutos.
Espero noticias!
Gracias

GSibaja dijo...

Saludos

Como realizao la cuenta de horas cuando han trancurrido varios dias y solo quiero tomar los dias laborables.

gracias por este foro

GSibaja dijo...

Para explicarmme mejor: como claculo la diferencia horaria superior a mas de 24 horas y solo quiero tomar encuenta los dias laborables.

me gustaria hacerlo como lo explicas en el ejemplo 3 de este post. Es esto posible.

yo utilizo la funcion dias.lab() y hago un calculo de las horas que flatan para finalizar el dia de inicio y las tanscurridas en el dia final. es bastante complicado.

por ejemplo
dia inicio: 07/08/2009 02:46:17 p.m. (formato de celda [$-C0A]dd-mmm-yy hh:mm AM/PM;@)

Dia fin: 10/08/2009 09:35:12 a.m. (mismo formato de celda)

Gracias y espero que me puedas ayudar.

te felicito por este foro

Javier Marco dijo...

Échale un vistazo a los comentarios de este artículo, porque un usuario comentaba como solucionar el tema de las horas que exceden de 24. Para el tema de los días laborables, usas la función adecuada (dias.lab): convertir unidades de tiempo

EDGARD dijo...

Tengo una duda sobre excel y no sé si me la podrias contestar. es para "nota".
Tengo una hoja excel principal y otra con los meses de este año.
En la hoja principal, tengo dos combos box: uno para el dia del mes, y el otro para el mes.
En funcion de dia que selecciono, me sale las horas que han faltado los operarios. Pero no puedo cambiar el mes y que tambien cambie el valor. Es decir, el 17 de julio y el 17 de enero siempre tienen el mismo valor (que es del del 17 del mes corriente).
Como lo puedo hacer?

Anónimo dijo...

Hola Javier,..muy bueno el BLOG.

Quisiera saber si existe una formula para colocar en una celda y que me entregue la fecha y hora en tiempo REAL,..es decir,..que los segundos vayan variando normalmente y no muestre TODO tan estatico..

Es posible..???

Gracias desde ya...

Javier Marco dijo...

Lo tienes explicado en este artículo: Poner la hora en una celda.

Saludos.

Anónimo dijo...

Te pasaste..!!!

Resulto altiro lo de la hora en tiempo real...que buena,..muchas gracias,..habia estado buscando,..pero NADA..

Aparte respondiste super rapido....


Gracias nuevamente

Saludos desde Chile

Gustavo__

Anónimo dijo...

Javier,..soy yo de nuevo,..GUSTAVO..

no quisiera abusar de tu buena voluntad,..pero viendo que eres tan bueno en excel,..quiero aprovechar de preguntarte algo que me tiene vuelto loco,..ya que n puedo sacarlo..

Resulta que cree una planilla excel con un formulario en VB para que me envie cantidades a unas celdas especificas desde el formulario al excel presionando un boton del formulario. Hasta ahi todo bien,..ya que envia el dato sin inconvenientes. El problema lo tengo cuando en el formulario ingreso otra cantidad y debido a las condiciones puestas en el formulario me envia esa cantidad a la misma celda anterior y me borra la anterior y la sustituye por la nueva,....eso no me sirve..!!!

Necesito que la cantidad nueva me la sume con la que ya estaba antes en la misma celda,..es posible,..

Si no me entendiste muy bien mi problema,..puedo enviarte la planilla para que la veas,..y me entiendas mejor..

Saludos desde Chile

,..y gracias de antemano

Javier Marco dijo...

Te entendí perfectamente.

Para eso, y suponiendo que el dato lo tengas en un TextBox llamado TextBox1, te bastará con hacer esto (suponiendo que quieras grabar el dato en la celda A1):

Range("A1") = Range("A1") + TextBox1

Lo que hace eso es tomar el valor de A1, sumarle el dato del TextBox1, y asignarlo de nuevo a la celda A1.

Saludos.

Anónimo dijo...

Gracias Javier y te repito,..me asombra la rapidez de tus respuestas,..jejejeje

Entendi tu explicacion,..pero solo me asalta una duda,...este codigo que tu dices debo colocarlo en la hoja,..en un modulo,..o en os codigos que estan en cuando se le hace click al boton ingresar..??? y si fuera esta ultima opcion,..debe ir antes de la instruccion que le dice al excel donde debe ir la cantidad del textbox1 o despues de esta instruccion,..???

Gracias nuevamente Javier...

Anónimo dijo...

Tenias toda la razon,...resulto super bien copmo me habias dicho,..solo que me habia confundido,..pero ya esta todo solucionado,..gracias por la ayuda..

Que estes bian___

Anónimo dijo...

Javier, que tal como estas..

Ya que estan hablando de los TEXTBOX,..quisiera que me dijeras como le puedo hacer para restringir un TEXTBOX,..es decir escribir en el codigo,.."Si el contenido del textbox1 es distinto de rojo, de azul, de verde,..entonces que aparezca una ventanita que diga "ERROR, eso no es un COLOR"..

Espero hayas comprendido mi inquietud..

Estoy atento a tus comentarios..

Ariel__

Javier Marco dijo...

Puedes probar algo como esto:

Private Sub CommandButton1_Click()
If LCase(TextBox1) <> "rojo" And LCase(TextBox1) <> "azul" And LCase(TextBox1) <> "verde" Then
MsgBox ("Error, eso no es un color.")
Exit Sub
End If
End Sub

Saludos.

Anónimo dijo...

Te pasaste Jvier Marco,..has sido de gran ayuda,..te lo agradezco una ENORMIDAD..!!

Que estes muy bien,..y felicitaciones por el Blog,..que hace un aporte muy bueno a los que en ocasiones estamos complicados con esta heramienta fenomenal,.que es el EXCEL.

Saludos,..y nuevamente gracias__

Anónimo dijo...

Hola javier,..espero que estes muy bien,..te escribo porque estoy medioc omplicado con un tema que me anda dando vueltas,...y como ya me has ayudado antes,..espero que puedas hacerlo ahora tambien...jejeje

Resulta que tengo un libro con 4 hojas,..la primera hoja es de INICIO y contiene todos los botones de las macros y de llamada a los Userforms,..y las otras 3 SOLO almacenan datos.

Lo que actualmente tengo me permite al presionar el BOTON,..guardar el libro COMPLETO,..y como entenderas,..con todas las macros y los Userform,..es demasiado pesado el archivo,..y como hay que hacer registro diario de esto,..en un corto plazo,..me ocupara mucho espacio en el disco.

Mi consulta es que si es posible,..modificar el codigo del boton de guardar,..para qe solo me guarde las hojas 2, 3 y 4 en un archivo diferente y que tenga como nombre el valor de la celda A1 por ejemplo y no el libro completo,..para que me ocupe poco espacio lo guardado y el libro ORIGINAL solo lo ocupe para INGRESAR datos y trabajar en el,..y los que va guardando,..solo informacion,..no se si me entiendes.

Ojala puedas darme una respuesta positiva a lo solicitado,..

Como siempre atento a tus valiosos comentarios,..me despido...

Gustavo__

Gabriela dijo...

Buenas Tardes,
Necesito ayuda urgente tengo un archivo de excel compratido en red con 6 computadoras y una de las columnas me da las horas y tiempos automaticamente cuando se escribe en una celda (todo eso funciona a la perfeccion) pero el problema que tengo es que hay una computadora que cuando se abre el archivo y se le da actualizar no pone la hora exacta que ya todas las otras 5 tiene porque coloca automaticamente la hora en que se abrio el archivo.... please HELLLLPPP por que pasa esto??? sera falta de sincronicacion de horas en la red??? como hago

Héctor dijo...

Estimado tengo unba duda que no he podido solucionar, se trata de lo siguiente: necesito obtener la diferencia entre ejemplo: A1 hora ingreso, B1 hora en que debería haber entrado, C1 respuesta en minutos, hasta ahí todo bien pero el problema se me produce cuando A1 es inferior a B1, no me da un valor negativo, solo un valor absoluto, la idea es poder saber los minutos en este caso, de atraso respecto de la hora de ingreso, vale decir que me diera un numero en negativo para poder sacar las difderencias. Desde ya muy agradecido.
Héctor

Javier Marco dijo...

Échale un vistazo a este artículo: Control horario: horas normales, y horas extras.

Marcelo Ruiz Diaz dijo...

Hola Javier: Felicitaciones por tu blog, es excelente.

Tengo el siguiente problema, a ver si me puedo explicar.
La idea es que un grupo de personas puedan acentar la hora de entrada y salida de su trababjo.
Para ello, pense en colocar un boton con el nonbre de cada uno, en el cual al presionarlo, ponga al hora de ingreso.
El problema es que quiero que ese mismo boton al presionarlo nuevamente marque la hora de salida. de manera tal que quede en una tabla de este estilo:
Apellido Entrada Salida
Sr. Xxxxx 09:48:42 17:50:06

Anónimo dijo...

Buen dia, te queria preguntar a ver si me podias ayudar con una hojita de excel que estoy haciendo para calcular las horas de los empleados. Te comento un poco, los empleados tienen un contrato que dice que deben hacer 48 horas semanales, pero solamente trabajan 8 horas de lunes a viernes (lo que da un total de 40 horas). Entonces supongamos que deban hacer horas extras, a menos que pasen las 48 horas por semana no son contadas como horas extras al 50%.
Hasta ahi la pude hacer, ahora viene la pregunta: los sabados despues del mediodia y los domingos o feriados, son contadas como horas extras al 100%, y no importa si cumplieron con las 48 horas semanales o no, si o si son contadas como horas extras. No se como plasmar eso en el excel para que quede ordenado cuantas horas extras hicieron, cuantas al 50% y cuantas al 100%.
No se si me exprese bien jaja.
Saludos

Javier Marco dijo...

Échale un vistazo a este artículo donde hablo del control horario con horas normales, y horas extras.

Como cada caso es un mundo, tendrás que adaptarlo a tus necesidades.

Saludos.

Campurriana dijo...

Buenas tardes y me alegro de volver por aquí,Javier. He retomado de nuevo Excel y tenía una duda (entre muchas). A ver si me la puedes resolver...se trata de series cronológicas...no me aplica la del día laborable poniendo como primera casilla el 1 de enero de 2003...debería saltarse los domingos o los sábados y domingos, no?...

Muchas gracias y, si me lo permites, te enlazo a mi blog. Si hay algún inconveniente, nada más que decirlo...

Echaré de nuevo un vistazo a tus consejos. Gracias por todo. Eres muy amable.

Javier Marco dijo...

Si en A1 tienes una fecha, prueba con esta fórmula en A2 y siguientes (A3, A4, etc.):

=SI(DIASEM(A1)=1;A1+1;SI(DIASEM(A1)=7;A1+2;SI(DIASEM(A1+1)=1;A1+2;SI(DIASEM(A1+1)=7;A1+3;A1+1))))

No te olvides de darle formato de fecha a esos datos.

De esa forma tendrás una lista de días correlativos, pero sin incluir sábados ni domingos.

Un saludo, y agradecido por el enlace :-)

Campurriana dijo...

Gracias Javier...hay soluciones varias... Al principio me costó entenderlo pero cuando he visto las funciones si anidadas ya lo he entendido...

Sigo investigando...

Javier Marco dijo...

Piensa que la semana empieza en domingo y acaba en sábado. DIASEM nos asigna precisamente esto:

Domingo = 1
Lunes = 2
Martes = 3
Miércoles = 4
Jueves = 5
Viernes = 6
Sábado = 7

Puedes echarle un vistazo también a esto para que veas más claramente el uso de DIASEM: Día de la semana.

moix-Uhx dijo...

Excelente blog Javier. Es uno de mis favoritos cuando tengo una duda con relación a macros, aunque este artículo no este propiamente relacionado a alguna macro.

SR dijo...

Hola, necesito tu ayuda... quiero ingresar una hora como negativa (ej. -02:30), pero excel automáticamente lo transforma a una fórmula y me dice q hay error... ya cambié el sistema de fechas a 1904 y elegí formato hora (hh:mm) pero no lo puedo solucionar... gracias!

Javier Marco dijo...

Suponiendo que en A1 tengas una cifra horaria (ej: 03:45:17), pon esto en cualquier celda:

="-" & TEXTO(A1;"hh:mm:ss")

Saludos.

SR dijo...

Muchas gracias por tu pronta respuesta! Esto funcionó, pero el problema q omití comentar es q son varias columnas de saldos horarios ingresado (es un resumen), y al final tengo la fórmula que suma todas esas columnas para obtener el saldo del período... al utilizar esa fórmula, si bien puedo tener la hora en negativo, no me reconoce para sumar al final...

Anónimo dijo...

Muchas gracias, me ha sido de gran ayuda.

yume dijo...

Acabo de toparme con tu blog y creo que es muy muy bueno. Gracias.

Tengo un problemilla con los sumatorios de horas en tablas dinámicas. Sipongamos que en la columna a tengo el nombre de unas facturas, por ejemplo A1=FRA1, A2=FRA1, A3=FRA2, A4=FRA3, A5=FRA3). En la columna 2 pongo una serie de tiempos en formato mm:ss, por ejemplo B1=11:01, B2=11:02, B3=12:01, B4=13:01, B5=13:02).
Pues bien, en otra hoja, he creado una tabla dinámica para que me agrupe los tiempos por nombre de factura, así los valores resultado deberían ser A1="FRA1" B1=22:03; A2="FRA2" B2=12:01; A3="FRA3" B3=26:03.
pero en vez de esto obtengo 00:00 en B1, B2 y B3 de la tabla dinámica, aún habiendo seleccionado formato mm:ss

Si en vez de usar tablas dinámicas uso la opción SUMAPRODUCTO, me pasa lo mismo.

¿Puedes ayudarme?

Javier Marco dijo...

Te puedes ahorrar la tabla dinámica, con esta formulita, por ejemplo para el caso de sumar todos los tiempos de la FRA1 (he supuesto que tus datos llegan hasta la fila 1000):

=SUMAPRODUCTO((A1:A1000="FRA1")*(B1:B1000))

A las celdas donde pongas esas fórmulas (la misma, pero variando lo de "FRA1", por "FRA2", etc...), dales formato:

[h]:mm:ss

No te olvides el corchete.

Saludos.

Anónimo dijo...

Buenas, necesito cargar minutos y segundo en una tabla de excel pero lo quiero cargar de una forma sencilla. Lo que pretendo es cargar el dato 1,3 (01:30) y que en la misma celda aparezca 1,5, para luego sumar esto y que me de un valor real de minutos o fracciones. Gracias

Javier Marco dijo...

Introduce la hora en una celda, como se debe introducir (ejemplo, si lo pones en la celda A1):

1:30

Ahora, en la celda de la derecha, pon:

=A1*24

Le das formato numérico a esta celda de la derecha, y verás como te aparece:

1,50

Anónimo dijo...

GRACIAS!!

P.Ruiz

yume dijo...

Gracias Javier.

Pero sigo sin conseguirlo.

Como te comentaba, con la función sumaproducto tampoco había obtenido los resultados que quería. Mi problema es que en B2 escribo 11:01 y esto son minutos y segundos, pero en la barra de fórmulas de Excel, este valor lo entiende como 11:01:00. Así, si sumo los valores de las columnas de FRA1, en lugar de obtener 11:01+11:02=22:03, con suma producto obtengo 22:03:00 y con la tabla dinámica 48:00:00.

Ah, por cierto, la tabla dinámica es que la necesito porque así me piden los informes.

Un saludo.

Javier Marco dijo...

Si estás introduciendo 11:02, excel interpretará siempre que son horas y minutos. Para ello, deberías entrar los datos como 00:11:02

No obstante, tu tabla dinámica no está bien construida, porque debería sumarte correctamente.

Fíjate en esta imagen: http://www.imagegratis.com/hosting/uploads/2ada1e5236.png

Saludos.

David G dijo...

Hola, aunque se que algo habeis comentado sobre las horas negativa y que, de momento excel no es la maquina del tiempo, me surge un pequeño problema. Si tengo que controlar el cumplimiento de 7 horas diarias de media pero con horario flexible, puedo tener saldos positivos (horas de mas) algunos días, y saldos negativos (horas de menos otros. Lo importante es que cuadre al final, pero me interesa saber día a día como se desarrolla. ¿no existe ninguna forma de que una celda me reconozca el déficit de horas? No es que vaya atras en el tiempo sino que faltan horas.

Muchas gracias.

Gabriel Alberto dijo...

hola, es correcta la formula que estoy usando para calcular el tiempo extra tomando en cuenta que antes de la entrada se toma solo las medias horas es decir:

entrada 7:30 se toma en cuenta despues de la fraccion y en la salida es igual
salida 17:30

es correcta esta validacion =si(B2<=00:30;"hora extra")


Nota:soy nuevo en excel y solo me meto en problemas

samantha dijo...

Hola Javier..., esta publicación está excelente. Solo tengo una duda cuando el tiempo ha pasado más de 24 horas. Por ejemplo tengo el siguiente problema:
Fecha I (01-10-10) Hora I(09:15),Fecha F (03-10-10) Hora F (15:15; con tu fórmula me da 06:00hrs, pero en realidad son 54 hrs, como hago que está fórmula me reconozca el tiempo después de 24 hrs, te agradezco la ayuda que me rindes.

Javier Marco dijo...

En ese caso, en lugar de darle a la celda formato:

h:mm

dáselo así:

[h]:mm

La diferencia: los corchetes. De esa forma obtendrás: 54:00

Saludos.

Anónimo dijo...

Tengo una duda pues realmente por mas que busco no logro resolverlo pues estoy haciendo un trabajo para mi materia de simulacion, procedo a contar mis problemas:

1) tengo una formula para sacar mi tiempo de llegada es: -4*(ln(numeroaleatorio)los numeros decimales que obtengo en la celda (que he puesto en formato: MM:SS) los debo sumar a mi primera hora inicial (7 am) donde la celda donde me debe dar el resultado esta en formato [HH]mm:ss, el problema es que: si digamos mi tiempo de llegada es 1:50 (minuto con 50 segundos) lo sumare a 7 horas. Excel no me da la suma como 7:1:50 si no con una hora realmenete exorbitante digamos: 23:50:10

Como logro hacer que mis sumas simplemente sean de minuto a minuto?

Anónimo dijo...

Me ha ido fantastica la solucion aportada. muchas gracias.

ROLY dijo...

TENGO PROBLEMAS PARA CONTROLAR EL COSTO TOTAL EN UN JUEGO DE BILLAS,HORAS Y MINUTOS, SI LA HORA ESTA A s/. 3.00.
SI EN CASO LLEGARIAN A JUGAR 1:25
NECESITO Q ME RESUELVAS DE LA MEJOR MANERA.

Javier Marco dijo...

Imaginando que en la celda A1 tienes este dato:

1:25

que corresponde a 1 hora y 25 minutos, para saber el coste de ese tiempo, teniendo en cuenta que el precio/hora es de 3,00, entonces solo tienes que poner esto (por ejemplo en A2):

=A1*24*3

Si te fijas, A1*24 te devuelve 1,42, que son las horas en números decimales. Se multiplica por 3, y listo, 1:25 cuesta un total de 4,25

Saludos.

Anónimo dijo...

Javier, muy bueno tu blog, muy util, pero sabes?, tengo un problema, te resumo, necesito calcular las horas de trabajo de un equipo, pero me resulta dificil calcular ya que algunas veces la maquina comienza a funcionar a las 23:45 de un dia y termina a las 06:30 del otro, ese problema lo soluciono sumandole 24, pero tengo un problema cuando quiero sumar las horas de trabajo, ya que ese 24 me afecta la suma total, espero haber sido claro, si tuviera tu correo te mandaria la planilla para que me des una manito, gracias de antemano.

Javier Marco dijo...

Esta fórmula te podría servir, si en A1 tuvieras la hora de entrada, y en B1, la de salida:

=SI((B1-A1)<0;B1-A1+"24:00";B1-A1)

Cuando hagas la suma de horas totales, dale formato:

[h]:mm

No te olvides el corchete que envuelve la hora, pues eso te permite controlar las horas que exceden de 24.

Saludos.

«Pai» dijo...

hola javier, me han resultado muy útiles tus ayudas.. pero una en particular se re ha rebelado!..
tengo una hoja de cálculos en la que calculo mis horas de trabajo, (cobrando por hora), como calculo, por ejemplo de 7:00 a 8:30 hs., me resultó muy util calcularlo mediante la fórmula que sugeriste "minutos" multiplicándolo por el valor de un minuto.

Function minutos(celda As Range)
dato = CDate(celda)
datos = Split(dato, ":")
minutos = datos(0) * 60
minutos = minutos + datos(1)
minutos = minutos + (datos(2) / 60)
End Function

pero al cabo de unos días quise ingresar más datos.. y no sé si es que no reconoce la fórmula o qué, pero me aparece #NOMBRE.. dice que =minutos(D16) por ejemplo, da como resultado un error. por las dudas traté de reingresar la fórmula al VBA, pero no hubo otra respuesta, mantuvo los datos calculados en las fechas anteriores, pero las nuevas.. no quiere.
[b]qué hago?.. [/b]

«Pai» dijo...

ah! tengo excel 2003, y he intentado, pero por algún motivo no reconoce los formatos de hh:mm.. y similares. :(

Javier Marco dijo...

Prueba esta otra opción más sencilla, que no requiere de macros ni funciones personalizadas.

Suponiendo que en A1 tengas: 08:30:00

Pon esto en A2, y al resultado, dale formato numérico (o olvides eso):
=A1*24*60

De esa forma obtendrás también los minutos que hay en 8 horas y media, es decir, obtendrás 510 minutos.

Saludos.

Anónimo dijo...

HOLA
NECESITO SABER COMO CAMBIAR DE FORMTATO HORA A FORMATO NUMERO POR EJEMPLO
SI SON 26:00 HORAS
SOLO QUIERO Q SE VISUALIZA 26 PERO EN FORMATO NUMERO PARA PODER UTILIZARLO EN OTRAS FUNCIONES

Javier Marco dijo...

Prueba este formato:

[h]

Saludos

Anónimo dijo...

Hola
necesito convertir 05:34 pm en 17:34. ya lo hice en una ocasion pero ahora no me funciona.
Te agredezco mucho

Javier Marco dijo...

En el formato de la celda, tendrás este: h:mm AM/PM

Para arreglarlo, cámbialo, y dale este formato a la celda: h:mm

Anónimo dijo...

hola La situacion es la siguiente tengo un archivo .txt con una serie de colunnas que tienen texto , fechas y una que tiene hora en el formato h.mm.ss am o pm.
Lo convierto a excel, para tener la opcion de poder editar mejor, necesito cambiar la columna que tiene la hora a el formato de 24 horas , es decir, cambiar 07:30 pm a 19:30.
Lo hago por panel de control, cofiguracion regional pero no me funciona.
existe otra forma?
Gracias

Javier Marco dijo...

Comprueba antes que el formato de la celda (o columna) sea de fecha/hora, porque aunque te salga lo de 07:30 pm, puede ser texto.

Vane Diaz dijo...

hola javier, necesito saber como hago con la formula hoy para llevar la cuenta de cuantos dias lleva vencido un cliente en pagarme,teniendo en cuenta la fecha en la que debia hacerlo hasta el dia de hoy

Javier Marco dijo...

Pues si en A1 tienes la fecha de vencimiento de la factura, la fórmula sería esta:

=HOY()-A1

Luego, a la celda donde has puesto la fórmula, habría que darle formato numérico.

Si la factura está pendiente de vencer, te saldrá en negativo, y si está vencida, en positivo (sin signo), lo cual indicará los días vencidos que lleva la factura.

Si quieres, también puedes poner directamente la fecha de vencimiento dentro de la fórmula, sin referenciarla a la celda A1, como en este ejemplo, suponiendo que la factura hay vencido el 20-07-2011:

=HOY()-"20/07/2011"

Si quieres llevar el control de tus facturas controlando los días que faltan hasta el vencimiento de las mismas, así como los días excedidos, te recomiendo que te descargues la aplicación que verás al final de este artículo: controlar vencimientos de facturas y recibos.

Anónimo dijo...

cordial saludo, tengo una falla al calcular tiempo en una hoja de excel superior a 24 horas.
El turno inicia a las 21:00 y termina a las 05:00 del día siguiente.
en ese tiemnpo las maquinas sufren paradas por diferentes fallas y el refrigerio de los compañeros, Excel solo me calculas desde 21:00 hasta las 23:59, en adelante me muestra 0 o en el pero de las casos error, si alguien me puede ayudar con una formula o funcion, le agradeciria muchos, llevo mas de un mey no he podido. De antemano gracias. y buen foro.
Mi correo "rodriguez-otoniel@hotmail.com"

Javier Marco dijo...

Si te fijas, la solución la tienes en el último ejemplo. Mira la imagen del final del artículo, y verás que es tu mismo caso, con hora de entrada y salida en distinto día.

Saludos.

Anónimo dijo...

Hola necesito un poco de tu ayuda, debo entregar un sistema en Excel desarrollado a través de VBA, que permita llevar a cabo un proceso en el cual se deben aplicar procesos de suma o resta de fechas.
Por ejemplo.
Un control de asistencia de personal, en el cual se registra la fecha y hora de entrada y la fecha y hora de salida. La idea es poder indicar cuántas horas trabajó ese día el empleado.

Javier Marco dijo...

Pásate por este artículo: Control horario: horas normales y horas extras, que te servirá para controlar el horario de entrada, y salida de empleados, así como las ausencias, las horas extras, y demás.

Un saludo.

jorge dijo...

olle esta chido tu blog pero tengo una super duda
me pidieron hacer la resta de dos horas(08:38:10-08:35:20) y el resultado de la formula me diera solo en segundos, osea el total de minutos y segundos en una sola cantidad en este caso serian 170 seg ¡como le hago??

-

Javier Marco dijo...

Si en la celda A1 tienes 08:38:10, y en A2 tienes 08:35:20, pone esto en A3:

=(A1-A2)*24*60*60

Luego, al resultado de esa celda (A3), dale formato numérico, y verás como aparece el tan buscado 170 :-)

Saludos.

jorge dijo...

gracias gracias javier la neta me sacaste de un apuro gracias..
olle y nada mas existe esa manera para convertir una resta de horas en una sola unidad o existen mas ??
quiero impresionar a mi profesor jajajaja

saludos...

Javier Marco dijo...

Prueba de esta forma, y dale formato numérico al resultado:

=(HORA(A1-A2)*(60*60))+(MINUTO(A1-A2)*60)+SEGUNDO(A1-A2)

Si también loquieres hacer con macros, creándote tus propias funciones, pásate por este artículo: convertir unidades de tiempo: horas, minutos, y segundos.

Saludos.

jorge dijo...

ok ok gracias
olle y para separar una dirección que esta así (av.paseo de guanajuato # 105;jardines del sur) separarla por calle y colonia con una formula "quien separa la calle de la colonia es el punto y coma" como le puedo hacer
en clase separamos un nombre de su edad así (pedro18) utilizo una formula (=derecha,a2,2) y luego (=largo,a2) y ya de ahi utilizo la ultima (=IZQUIERDA(A5,C5-3))y lo separo los dos datos ahora no se puede asi porque no esta definido los caracteres de la derecha ojala y me puedas ayudar
saluuudos

Javier Marco dijo...

Prueba esto, pero es mi última ayuda, porque creo que tienes que poner algo de tu parte.

Si en A1 tienes ese texto, prueba a poner esto en A2 (sustituye el punto y coma, por una coma, excepto el que hay entrecomillado, pues veo que tu separador es ese):

=IZQUIERDA(A1;ENCONTRAR(";";A1)-1)

Y esto en A3 (lo mismo que antes, cambia el punto y coma por comas, excepto el punto y coma que hay entre comillas):

=DERECHA(A1;LARGO(A1)-ENCONTRAR(";";A1))

Ahora te toca a tí estudiar :-)

jorge dijo...

OK MUCHAS GRACIAS POR TU AYUDA
CON ESTO YO SOLO ME PONDRE A RESOLVERLOS GRACIAS DE NUEVO

Anónimo dijo...

Hola soy el mismo que te puso el problema de control de horario de entradas y salidas en un trabajo...
Pero la pregunta en si, es la suma y resta de fechas por medio de visual basic.
Seria grandioso que me puedas ayudar ya que estoy un poco urgido... te agradezco mucho por tu tiempo y encuentro tu blog una gran ayuda.
Un saludo

Anónimo dijo...

Gracias Javier, por tu tiempo y tus conocimientos

Baratla dijo...

Hola!
Estoy llevando un control de tiempo en la reparación de motores, necesito calcular los días trabajados y las horas trabajadas en cada uno de los pasos del proceso y al final obtener un tiempo total de trabajo y # de días en que se realizo el trabajo, teniendo en cuenta que se trabaja de 8 a 10 a.m; luego de 10:15 a 11:55; luego de 12:55 a 3:00 pm y de 3:15 a 5:30 de lunes a viernes. Los sabado se trabaja hasta la 1:30 pm, con el descanso de 10:00 a 10:15.Podrías orientarme por favor? estoy urgida :( estos son los datos que utilizo FECHA INICIO, HORA INICIO, FECHA FINAL , HORA FINAL, DÍAS TRABAJADOS, TIEMPO TOTAL TRABAJADOS, INICIO DE JORNADA, FIN DE JORNADA, TIEMPOS MUERTOS (QUE SON LOS DESCANSOS)... si consideras que no son los indicados indicamelo por fis...estoy ya algo desesperada debo entregar el informe y no logro realizar la planilla

Javier Marco dijo...

Con lo que hay explicado en este artículo más este otro: control horario: horas normales y horas extras, creo que lo tienes casi todo (por no decir todo).

Saludos.

B. dijo...

Hola. Tengo un grandísimo problema :-). Estoy calculando tiempos de carga de camiones, y cuando un camión llega a cargar a las 23:00 y comienza a cargar a las 3:00 (tres de la mañana), la resta no funciona. ¿Alguien sabría cómo hacer esto? Muchas gracias de antemano

Javier Marco dijo...

Excel interpreta que son horas del mismo día (pues no le dices lo contrario, pese a que nosotros pensemos que las 3:00 son las 3:00 am del día siguiente), por eso no te calcula la diferencia, pues se trata de un periodo horario negativo 3:00 - 23:00


Para solucionarlo, introduce la fecha de llegada para la carga, y la fecha efectiva del comienzo de la carga, tal y como aparece en la última imagen del artículo que puedes leer más arriba. De esa forma no tendrás problema con horas correspondientes a días diferentes.


Imagina que ese horario de las 3:00 am, no es del día siguiente, sino de 4 días más adelante. Excel no puede averiguar a qué fecha nos referimos, a no ser que expresamente le digamos que ha llegado el camión a las 23:00 y que ha empezado a cargar a las 3:00 am del día siguiente (no de dentro de 4 o 5 días, sino del día siguiente).

Pues eso, mira la barra de fórmulas de la última imagen del artículo que acabas de leer, y verás como lo tienes solucionado.

Un saludo.

JONAS dijo...

Una solución, fácil, brillante. Y pensar que estoy con c++, para lo que tardado 1 min, en hacer con excel.

Gracias.

Y recuerdo: en vez de ir a hh:mm,
poner en personalizar, 00":"00":"00 y con tabular e intro, se va más rápido. Ha hace falta poner los :

Anónimo dijo...

Muchas gracias por la información, demasiado útil, llevo mucho tiempo tratando de ver la forma de aplicar esta solución, que tu tenías en tu blog..
te amé
gracias
Andrea

guetpu dijo...

Hola
he repasado todos los comentarios y creo que no se han tratado los temas que me preocupan.

estoy operando con el formato horas
hasta el momento todo bien pues trabajaba con resultados positivos.

El problema ha surgido cuando A1=01:00; B1=05:00 y en C1 tengo la formula A1-B1, el resultado es ###############
con una leyenda que me informa que el resultado en horas es negativo.

El otro problema es fruto del querer obtener más información de los datos que me ofrece mi hoja de trabajo.

No consigo depurar la formula SI

En el ejemplo anterior podria ser

SI A1>05:00, VERDADERO 06:30+0:20; FALSO A1

Renuevo mi agradecimiento a tu atención y paciencia

guetpu

Javier Marco dijo...

Mírate este artículo: Control horario: horas normales, y horas extras. Allí hay un comentario de un usuario, sobre las "horas negativas", y la solución propuesta.

Respecto a la otra consulta, cuando introduzcas datos horarios en una fórmula, hazlo multiplicando por 24, para pasar de horas a números decimales (en lugar de 5:30, estaríamos trabajando con 5,50). Aquí un ejemplo:

=SI(A1*24>"5:00"*24;"A1 es mayor de las 5:00";"A1 es menor o igual a las 5:00")

Nota: Quizás en lugar del ";" como separador en el condicional, debas usar simplemente la coma ","

guetpu dijo...

Javier Marco, te agradezco tu rápida respuesta.

en cuanto al condicional SI, voy a probar según tus indicaciones.

Sin embargo, si no lo he entendido mal, sigo teniendo un problema con el resultado de tiempos negativos, ya que la respuesta a la que me has derivado deja muy claro que no se puede operar por tratarse de un formato texto.

Abundo en la consulta y si alguien entre los muchos participantes en este tu blog ha encontrado una solución, le estaria muy agradecido.

Renuevo mi gratitud.

Guetpu

Javier Marco dijo...

En ese otro artículo al que te remitía, le proponía una solución al lector que consultaba lo mismo.

Échale un vistazo, que seguro te puede servir.

Un saludo.

guetpu dijo...

muchas gracias

la formulación SI, da el resultado esperado.

guetpu

Ergástulo dijo...

Buenos dias.
Llevo un equipo de atletismo y quiero hacer una hoja de cálculo donde vea los progresos de mis atletas. En las medidas de longitud no tengo problemas, ya que es una simple operación; la duda viene en cómo puedo hacer restas en medidas de tiempo que vienen expresadas en H:mm:ss,dd o en mm:ss:dd o en ss:dd (d=decimal). Soy novato en el tema.
Magnífico blog.
Un saludo.

Anónimo dijo...

Necesitaría ayuda para hacer la siguiente operación. Sé como calcular el total de horas de permanecia (formato hh:ss) de una trabajador en varios día. ¿pero como resto el total de horas semanales que debe hacer (35) de las horas de permanencia que ha realizado.
Gracias

Javier Marco dijo...

En la penúltima de las imágenes (la tabla de color azul) y la última (tabla amarilla), lo tienes explicado. Si te fijas en la barra de fórmulas de esas imágenes, verás la fórmula aplicada. Tan solo tienes que restar 35 h de las horas totales trabajadas.

Puede optar por hacerlo de varias formas. Si quieres poner el dato en minutos y segundos (no en números decimales), puedes optar por poner esto:

=35/24

Imagina que pones esa fórmula en la celda B3. Ahora deberías darle este formato [h]:mm:ss y verás como te aparece esto en la celda: 35:00:00

De esa forma ya tienes un dato horario. Ahora si por ejemplo pones este otro dato en la celda B4 por ejemplo:

14:33:00

Y quisieras restar B4 de B3, solo tendrías que poner esta fórmula en una celda cualquiera:

=B3-B4

De tal forma que obtendrías como dato esto: 20:27:00

Que no es otra cosa que 35 horas, menos 11 horas y 33 minutos.

Saludos.

Anónimo dijo...

Perdón. Acabo de solucionar la duda anterior.Pero me surge esta otra.
Si resto dos celdas h:mm.SS don el resultado de la suma (35:27:00) y con el resultado de 35/24 (35:00:00) me da en la celda #########
Ramón

Javier Marco dijo...

Eso te ocurre porque estás restando horas y el valor obtenido es negativo. En realidad el tiempo siempre es positivo, que no estamos en "regreso al pasado" :-)

Para solucionar ese contratiempo, lee los comentarios anteriores, que algún usuario planteaba esa misma duda, y le propuse una solución.

yoyi dijo...

HOLA, TENGO UN DOLOR DE CABEZA...NECESITO MULTIPLICAR FRACCIONES, ES DECIR,NUMEROS TALES COMO 0.5,0.63,0.04 PERO CUALQUIER OPEACION QUE HAGA CON ELLOS LOS TOMA COMO SI FUERAN CEROS, Y NUNCA ME DA UN RESULTADO,,TE AGRADECERIA QUE ME AYUDARAS, MUCHAS GRACIAS, POR CIERTO,FELICIDADES POR TU BLOG

Javier Marco dijo...

Supongo que el problema viene porque tu separador decimal no es el punto sino la coma.

Si pones esto en una celda (incluyendo el signo de igual), te dará 16,50:

=0,5*33

Esto supongo que es lo que te da error:

=0.5*33

Si te da como resultado cero, entonces no es un error, sino que simplemente no estás visualizando en pantalla los decimales. Quizás esto te da como resultado cero "en pantalla" (supondremos que tu separador decimal es el punto):

=0.2*0.06

Pero en realidad el dato que hay detrás es este: 0.012

Solo tienes que situarte en la celda y en Excel 2003 ir a Formato ---> Celdas ---> Seleccionas la categoría números y le dices cuantos decimales mostrar. En Excel 2007 y 2010, ves a la Pestaña Inicio ---> selecciona Formato ---> Formato de celdas ---> selecciona la categoría Números, y ponle el número de decimales a mostrar.

Saludos.

algodecolores dijo...

Gracias por tu artículo, ha sido de mucha ayuda. Me alegra encontrar a gente como tú dispuesta a ayudar, hay que seguir el ejemplo con los conocimientos que cada uno tenga para enriquecernos todos.

Anónimo dijo...

hola tengo una duda, ya calcule el tiempo de estancia en horas. En lo que ahora quisiera que me apoyaras es lo siguiente: Si quiero calcular en automatico de acuerdo a esas horas de estancia quien llegó primero tomando en cuenta que a mayor horas de estancia sería considerado como el primero?
de antemano te agradezco la ayuda me ha sido de mucha utilidad
atte..
mary cruz

Javier Marco dijo...

Imagina que en la columna A, desde A1 hasta A10 tienes el tiempo invertido, por ejemplo: 22:14, 20:33, 15:10, etc. (tiempos colocados en forma vertical en la columna A, desde A1 a A10), entonces pon esta fórmula en B1, y arrástrala hacia abajo, hasta la celda B10:

=JERARQUIA(A1;A$1:A$10;0)

Si quieres el orden inverso (menos tiempo dedicado = 1ª posición), entonces cámbiala por esta otra:

=JERARQUIA(A1;A$1:A$10;1)

Saludos.

Anónimo dijo...

Gracias genio, me re sirvió.

Anónimo dijo...

Buenas Tardes Javier

Quisiera saber como puedo compara la hora actual del sistema con la hora de una celda

Javier Marco dijo...

Supongo que por hora del sistema, te refieres a que vaya cambiando a cada segundo, ¿no?. Pásate por este hilo a ver si con un macro sencillo puedes sacar algo: poner la hora en una celda.

Saludos.

Hernan Lezama dijo...

Buenas noches, tengo un tema por favor me podrias ayudar con suma de minutos y segundos de llamadas; los operadores me mandan archivos de horas pero en formato texto de la siguiente manera:

Pero eso si, todos mandan en minutos o segundos, nunca en horas.Todo en sexagesimal

08:30 = 8 min 30 segundo
8'28" = 8 min 28 segundo
2300 = 2300 segundos
6.45 = 6 minutos con 45 segundos

necesito que todo quede ne formato [mmm]:ss y poder sumas la cantidad de minutos y segundo utilizados en las llamadas

De antemano agradezco tu ayuda