17 de junio de 2019

Horas aleatorioas en Excel - funcion aleatorio y aleatorio.entre



 Normalmente pensamos en aleatorio, cuando requerimos numeros, pero en ciertas ocasiones, necesitaremos lo mismo pero para horas.

La funcion aleatorio, y aleatorio.entre normalmente viene para datos numericos, podemos usar otras funciones como texto y apoyarnos para obtener los resultados deseados.
Veamos.



EJEMPLO 1
1. Ingrese en cualquier celda, la funcion =TEXTO(ALEATORIO();"hh:mm:ss")

 

2.  Arrastra dicha funcion y verás el increible resultado:




EJEMPLO 2. Ahora queremos que las horas pertenezcan a un rango específico, por ejemplo que estén entre las 8: 00 hasta las 12:00


- En la celda D1, escribimos la hora inicial. En este caso 8:00
- En la celda E1, escribimos la hora final. En este caso 12:00
- En la celda F1, escribimos la función:
=ALEATORIO.ENTRE(A1*24*60*60;SI(A1>B1;B1+1;B1)*24*60*60)/(24*60*60)
Ahora, prueba a ver si te sirve.
 
Esta función lo que realiza es usar la funcion que ya conocemos, llamada Aleatorio.entre, que trae dos 
numeros aleatorios, dependiendo del un numero inicial y un numero final.
En este caso usamos la hora inicial y hora final. Estos mismos los convertimos en segundos.
 
Nota: A la celda F1 dale un formato de hora, o sólo verás un número con decimales.



 Ahora arrastramos la fórmula:







Si te gustó, síguenos en Twitter  para recibir nuestras actualizaciones y trucos

9 comentarios:

  1. Respuestas
    1. Debes tener claro, si quieres horas aleatorias correspondientes a cualquier horario, o si deseas un rango de horas entre una hora y otra hora.
      Luego de tener el punto claro anterior, debes hacer el ejemplo como se muestra. Ejemplo 1 para la opcion 1 y Ejemplo 2 para la opcion 2.

      Borrar
  2. Y por ejemplo si queremos que de 11:oo am a 11:30 no nos marque ni una hora como podría hacerlo? pero que las horas me las siga marcando de 8:oo a 12:00

    ResponderBorrar
    Respuestas
    1. Claro. Se me ocurre entonces crear dos rangos.
      rango1= 8 a 10:59
      rango2= 1131 a 12
      Y hacer dos funciones, que traigan el rango uno por separado y el rango dos por separado.
      A1

      Borrar
    2. A la fórmula creada en el ejemplo 2, le vas a aplicar una validación, con la función SI, en una celda nueva.
      Usamos "Si" y el condicional "Y" para validar si el resultado obtenido está entre el rango de las 11:00 y 11:30, si es verdadero que vuelva a ejecutar la función aleatorio, sino que escriba el resultado inicial.
      A1= 8:00 B1=10:59
      A2= 11:31 B2=12:00
      D2= formula de ejemplo 2
      D3= SI(Y(VALOR(D2)>VALOR(B1);D2<=A2);ALEATORIO.ENTRE(A1*24*60*60;SI(A1>B2;B2+1;B2)*24*60*60)/(24*60*60);D2)

      Borrar
  3. Muchas gracias!! ha sido de gran utilidad.

    ResponderBorrar
  4. En el ejemplo 2, dice:
    =ALEATORIO.ENTRE(A1*24*60*60;SI(A1>B1;B1+1;B1)*24*60*60)/(24*60*60)

    Debería decir:
    =ALEATORIO.ENTRE(D1*24*60*60;SI(D1>E1;E1+1;E1)*24*60*60)/(24*60*60)
    Debido a que:
    En la celda D1, está la hora inicial
    En la celda E1, está la hora final

    Por otro lado, excelente aporte; me sirvió mucho. Gracias.

    ResponderBorrar
  5. Tengo problema en donde ya tengo un # específico de incendios que sucede por cada día del año (lo tengo en formato de calendario), ahora quiero generar el intervalo de tiempo que sucede cada incendio en ese día pero sin sobre pasar las 24 horas, es decir, la suma de los intervalos de cada incendio para cada día se acoplen el formato de 24h para luego al día siguiente se generé una nueva serie de intervalos de tiempo que sucede cada incendio pero sin que está serie pase las 24h.

    ResponderBorrar