Generación de Variables Aleatorias con Excel
Por Macario Hernández Garza
Sistemas de Optimización y Estadística, S. C. Copyright © 2008. Todos los derechos reservados.
Podemos requerir valores aleatorios en las hojas de Excel en las cuales estemos trabajando. Podemos necesitar también valores aleatorios para simular algún proceso.
La función RAND() de Excel.
Dentro de las funciones para trabajar en una hoja de Excel, la función RAND(), genera números aleatorios reales con distribución uniforme en el intervalo (0,1), lo cual indica que cualquier número real entre 0 y 1 tiene la misma probabilidad de ser regresado por la función.
Si usted requiere números aleatorios reales con distribución uniforme en un intervalo más grande, por ejemplo entre 0 y 200, utilice la fórmula:
=RAND()*200
Si deseamos generar número aleatorios enteros con distribución uniforme entre 0 y 200, utilice la fórmula:
=ROUND((RAND()*200),0)
Para generar números aleatorios reales con distribución uniforme entre dos valores a y b, donde a < b, usamos:
=RAND()*(b-a)+a
Por ejemplo, para generar números aleatorios reales con distribución uniforme entre 10 y 20, usamos la fórmula:
=RAND()*(20-10)+10
Para generar números aleatorios enteros con distribución uniforme entre los valores enteros A y B, use la fórmula:
=ROUND(RAND()*(B-A)+A,0)
Por ejemplo para generar números aleatorios enteros con distribución uniforme entre los valores enteros 75 y 90, use la fórmula:
=ROUND(RAND()*(90-75)+75,0)
La función de Excel RANDBETWEEN
Para la generación de números enteros con distribución uniforme entre dos valores enteros determinados, podemos usar la función RANDBETWEEN. Por ejemplo, la siguiente fórmula genera números aleatorios enteros entre 1 y 50:
=RANDBETWEEN(1,50)
En anteriores versiones de Excel, la función RANDBETWEEN estaba disponible solamente cuando se instalaba el add-in Analysis Toolpak. Si quiere tener compatibilidad con versiones anteriores de Excel, es mejor que utilice la fórmula anterior para generar números enteros entre A y B (donde a y B son valores enteros) que vimos anteriormente:
=ROUND(RAND()*(B-A)+A,0)


como hago para generar dos numeros aleatorios , pero que cuya suma sea igual a 1 , por ejemplo en una casilla me genere 0,8 y en la siguiente me genere lo que falta 0,2 alguien puede ayudarme
Hola Fernanda:
Supongamos que se van a poner las fórmulas en las celdas A1 y B1, pondrías:
En la Celda A1, la fórmula =ALEATORIO()
En la Celda B1, la fórmula =1-A1
Esto si tienes la versión en Español, si tiene la versión en Inglés, en lugar de ALEATORIO(), pon RAND()
Y solucionada la situación.
Saludos
Macario
Hola me gustaría saber como hacer para generar una muestra aleatoria que sólo puede tomar los valores 0 y 1, de modo que haya 70% de 0 y 30% de 1.
Si tienes la versión de Excel en Inglés: =IF(RAND()<=0.7,0,1)
Para Excel en Español no estoy muy seguro (uso Excel en Inglés, pero prueba: =SI(ALEATORIO()<=0.7;0;1) (no recuerdo si el separador de parámetros en las fórmulas de Excel es ";" o "," Prueba de las dos formas.
Luego copias las fórmulas cuantas veces quieras para reproducir los otros valores aleatorios.
Saludos
Macario
Hola, me gustaría generar variables aleatorias con una distribución gamma, tengo entendido que la forma mas sencilla es por el metodo de rechazo, pero no consigo lograr que funcione.
Gracias
German
Hola Germán
Disculpa la tardanza, pero he tenido mucho trabajo y tengo olvidado este blog. Si todavía te sirve la respuesta.
Puedes generar una variable aleatoria Gamma con la fórmula siguiente:
=DISTR.GAMMA.INV(ALEATORIA();ALFA; BETA)
Si tienes Excel en Español. Si lo tienes en Inglés es cuestión de que busques la notación adecuada.
Saludos
Macario