Generar fechas aleatorias en hojas de cálculo

fechas en hojas de cálculoHay ocasiones, especialmente en clase de Informática, en las que se necesita generar datos de prueba para poder realizar cálculos sobre ellos (en ocasiones abuso de la función “aleatorio.entre(…)” de LibreOffice Calc 😉 ) El otro día plantee (como “reto”) a los alumnos de Bachillerato generar fechas aleatorias y caí en la cuenta que nunca había documentado en el blog cómo hacerlo así que me he decidido a subsanar dicho “despiste” (así, cuando lo busquen, me encontrarán a mi jojojo…) Lo primero que se les ocurrió a los alumnos fue utilizar las funciones:

  • aleatorio.entre(…) para generar meses y días al azar
  • concatenar(…) para unir los numero generados con las barras de separación de una fecha y el año

Pero, dicha solución, plantea un “grave” problema: ¡controlar que las fechas sean correctas! (¿qué os parecería un 30 de febrero o hacer que abril tenga más de 30 días?) La solución es sencilla pero requiere pensar de un modo radicalmente distinto: las fechas se representan internamente como números así que ¿¡¿ por qué no sumar valores numéricos a una fecha ?!? Como sospecho que no se habrá entendido, os dejo directamente la solución y trataré de aclararla

='15/09/2015'+aleatorio.entre(0;180)

Donde:

  • ’15/09/2015′ es la fecha de inicio; puedes usar cualquiera, yo he usado esta por ser el inicio de curso 😉
  • aleatorio.entre(0;180) generará fechas a 3 meses “vista”; el 0 es para que se incluya el ’15/09/2015′ entre los posibles valores generados.

Conclusión

Forma sencilla de generar fechas aleatorias en cualquier hoja de cálculo (las funciones utilizadas son para LibreOffice Calc en castellano, pero “traduciéndolas” a cualquier otra hoja de cálculo deben funcionar igualmente)

¿Y tú…?

  • ¿Conocías esta forma de generar fechas aleatorias?
  • ¿Has resuelto el problema de otra forma?
  • ¿Qué te ha parecido la solución planteada?

8 comentarios en “Generar fechas aleatorias en hojas de cálculo

  1. Otra solución pasa por olvidarnos del concepto fecha y tener en cuenta que las fechas no dejan de ser números para Excel.

    Con la fórmula =FECHANUMERO(“09/03/2015”) podemos ver que el día de hoy corresponde al número entero 42072. Si quisiéramos generar fechas aleatorias de aquí a un año, podemos utilizar:

    =ALEATORIO.ENTRE(42072;42437)

    Quedaría dar el formato correcto a las celdas para ver que efectivamente esos números pueden ser interpretados como fechas.

    La solución es muy parecida a la tuya pero evita un paso de cálculo (la suma).

    • En realidad no necesitarías usar ni la función (bastaría escribir la fecha y cambiar el formato a número)

      Al principio lo usaba pero me cansé de estar averiguando los números asociados a las fechas de inicio y fin del intervalo 😉

      Puestos a enredar también podríamos anidar funciones en plan aleatorio.entre(fechanumero(“09/03/2015”);fechanumero(“08/03/2016”)) pero creo que con la idea que hemos planteado (las fechas son números) se capta suficientemente el concepto y cada uno puede empezar a componer sus propias “aberraciones” ¿no te parece? XD

    • Perteneciendo a la gens Julia, no podía ser de otra forma 😉

      Es otra alternativa (gracias por plantearla) pero hay mucha conversión de por medio ¿no te parece? Yo manejo realmente mal el calendario “juliano” (si acaso, cortar a “juliana” pero no creo que tenga mucho que ver jojojo)

      Un abrazo compi y gracias por compartir el nuevo enfoque para “abrir mentes”

  2. Parecido. =42004+(RAND()*365)
    42004 es el 31/12/14 y el uso de la función rand es el habitual en todos los lenguajes de programación, la generación de un aleatorio entre 0 y 1 a multiplicar por el número de objetos a obtener.

      • mariadelaO dijo:

        Odio que Excel, Calc y similares se empeñen en traducir los nombres de funciones. Tengo que trabajar con versiones de Excel en distintos idiomas, y es un INFIERNO estar pensando cómo se traducen RAND, MEAN o similares!!!

        ¿Existe alguna opción oculta en algún sitio para que todas las hojas de cálculo en diferentes idiomas pasen a usar las funciones en inglés????

        • La verdad es que sería un “pelotazo” dicha posibilidad; sufro en “silencio” el mismo problema que mencionas y sí que sería interesante encontrar dicha opción ¿alguno la ha encontrado ya? 😦

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s