domingo, 15 de marzo de 2015

Los dados de Excel

!!! Hola !!!


En esta entrada voy a mostrar como es que se generan numeros aleatorios en Excel.

Si no sabes lo que es un numero aleatorio, te dire que son numeros al azar.

Como cuando tu le dices a alguien. "Dime un numero cualquiera entre 1 y 100"


Y para que sirven los numeros aleatorios?
Tal vez estes creando un juego en Excel donde tienes que adivinar un numero generado por el programa.

Quizas desees recrear el juego de bingo, para lo cual es necesario que se muestren numeros al azar.

Es posible que tengas un cuestionario de 100 preguntas de un examen y trates de automatizar el proceso para que a cada estudiante le asignen diez de esas preguntas al azar.

Y si solo quieres aprender un poco mas acerca de las capacidades de Microsoft Excel?, ese seria un buen motivo para leer e implementar los ejemplos que se muestran mas adelante.


Generando numeros aleatorios usando la interfaz de Excel

Microsoft Excel cuenta con dos funciones que permiten generar numeros aleatorios:

ALEATORIO (RAND) - Devuelve un numero aleatorio entre 0 y 1.
Ejemplo - En la celda A1 escribe la siguiente formula
=ALEATORIO()
Te devolvera un numero (no se cual, nadie lo sabe - por eso es aleatorio) entre 0 y 1


ALEATORIO.ENTRE (RANDBETWEEN) - Devuelve un numero entero aleatorio comprendido entre los argumentos
Ejemplo - En la celda A1 escribe la siguiente formula
=ALEATORIO.ENTRE(1, 100)
Te devolvera un numero aleatorio entre 1 y 100

Generando un numero aleatorio comprendido entre 2 rangos no consecutivos.
Excel no incluye funciones que devuelvan valores aleatorios comprendidos entre 2 rangos no consecutivos, sin embargo, con un poco de ingenio esto puede hacerse:

Un numero aleatorio entre [1, 200] o entre [800, 1000]
=SI(ALEATORIO()>0.5, ALEATORIO.ENTRE(1,200), ALEATORIO.ENTRE(800,1000))

Generando numeros aleatorios usando codigo VBA
Los programadores de VBA tienen acceso a las mismas funciones de la hoja de trabajo ya explicadas. desde el objeto Application.WorksheetFunction, usando los nombres en ingles de estas funciones - ver mi entrada Nombre de las funciones de Excel en Ingles dentro de este mismo blog

Application.WorksheetFunction.RAND()
Application.WorksheetFunction.RANDBETWEEN(1,100)

VBA, incluye, ademas la funcion rnd que devuelve un numero aleatorio entre 0 y 1:
rnd().

Tambien podemos emular la funcion ALEATORIA.ENTRE para obtener un numero aleatorio en el rango [a,b): (b-a)*rnd()+a

Eso es todo amigos








No hay comentarios.:

Publicar un comentario