Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Número aleatorios en Excel

| Sin comentarios

Microsoft Excel es un programa informático, el cual representa una herramienta indispensable para el desarrollo de diversas actividades tanto para las más grandes empresas, como para cualquier estudiante. Es uno de los programas más prácticos y utilizados a nivel mundial, pues puede abarcar temas de diversas áreas de la gestión empresarial, tales como ventas, contabilidad, o incluso también de la ingeniería. Esto se debe a que Excel, posee una gran variedad de funcionalidades, las cuales permiten facilitar la resolución de problemas. Estos problemas pueden variar en su nivel de complejidad, desde lo más simple a lo más complicado. Por ejemplo, un problema simple al que podría dar solución Excel, es al encontrar el ganador de un sorteo o en un juego en el que se necesite tirar un dado. En estos casos existe una dependencia del azar; ya que, será necesario el uso de números aleatorios. Es a partir de este punto, en el que se da inicio al tema de esta ocasión: generar números aleatorios en Excel.  

Generación de números aleatorios mediante Excel

En Excel existen dos formas de cómo generar números al azar: mediante el uso de macros y sin macros.

En este punto no hay necesidad de utilizar el Visual Basic, por lo que solo se aplicarán las fórmulas existentes directamente en la hoja de cálculo. Hay dos fórmulas similares, pero con una distinta funcionalidad: 

=ALEATORIO() :

Esta fórmula permite obtener números decimales aleatoriamente entre 0 y 1 como se muestra a continuación.

  aleatorio

De esta forma, se muestra que la fórmula es muy limitada, es por ello que tendrá que ser alterada para una mayor flexibilidad en su uso.

Por ejemplo, para hacer que se muestren números de forma aleatoria entre 100 y 300, tiene que realizarse los siguientes artificios:

formula aleatorio

entero aleatorio

 En primer lugar, se deberá multiplicar el “ALEATORIO ()” por la diferencia entre la mayor y menor cota establecida, luego se le sumará a este producto el límite inferior; lo que en este caso es 100; y finalmente, se aplica la función “ENTERO()”, la cual realizará la transformación de un número decimal a uno entero. De esta forma se obtiene un número aleatorio que se encuentra entre el 100 y 300.

=ALEATORIO.ENTRE() :

Esta fórmula es la más predominante y la más fácil de emplear, pues permite mostrar un número aleatorio que se encuentra entre las cantidades numéricas que el usuario delimite. A continuación, se observa un ejemplo:

formula aleatorio1

El usuario define el rango inferior y superior del número, en este caso el usuario solicita que se muestre un número al azar que se encuentra entre el 100 y 300.

Con macros:

Con macros, éste método consiste en emplear el Visual Basic con el fin de mostrar números aleatorios. Las fórmulas que se utilizan son el “Rnd”, el cual emite un número decimal aleatorio entre el 0 y 1, o el “WorksheetFunction.RandBetween(cota inferior, cota superior)”, en el cual el usuario define los rangos entre los que se encuentra el número aleatorio. La diferencia entre los métodos de no utilizar y de utilizar macros en la generación de números aleatorios, radica en que mediante este último procedimiento se puede dar uso a una mayor cantidad de funcionalidades, las cuales pueden combinarse con las fórmulas ya mencionadas, con el fin de resolver problemas más complejos que puedan presentarse. 

A continuación, se muestra un problema, cuya resolución ha sido realizada mediante la generación de números aleatorios empleando los dos métodos: con macros y sin macros. Se presentará la explicación de cada solución y usted sacará sus propias conclusiones, de cuál es la más efectiva.

Problema propuesto

En un sábado por la noche, 4 amigos se reúnen y deciden hacer una competencia. El ganador de esta competencia, será beneficiado de obtener una entrada doble para asistir al clásico más importante del fútbol peruano. La competencia consiste en que cada uno de los amigos escogerá un dado y lo tirará simultáneamente. El participante que obtenga el mayor número del dado será premiado. En caso, se dé un empate, todos volverán a tirar los dados, hasta que haya un solo ganador. 

Primera solución (con macros)

Antes de empezar con el desarrollo de la macro, primero se elabora una tabla con tres columnas. En la primera columna se anotan los nombres de los participantes; en la segunda, las cantidades numéricas que obtenga cada uno luego de tirar el dado; y en la última, el mensaje que muestre el resultado final.

alonso 

La macro “NumeroAleatorioDADO” inicia, seleccionándose la primera hoja de cálculo y utilizando la fórmula de la última fila, esta representará la cantidad de amigos que participan en la competencia. Asimismo, se declara la variable “numMaxDado”, la cual indica el valor máximo que se puede obtener al lanzar un dado (6), y se realiza una iteración mediante la función “FOR”, con el fin de borrar cualquier mensaje que pueda existir en las celdas pertenecientes a la columna 3, desde la segunda fila hasta la última que contenga información.  

número aleatorio

Seguidamente, se presenta una segunda iteración, la cual permitirá obtener un número aleatorio entre el 1 y el “numMaxDado” (6), por cada participante de la competencia. Los números se mostrarán en la segunda columna de la tabla. Por otro lado, se procede a realizar una tercera iteración para hallar el máximo número obtenido, esta quedará almacenada en la variable “maxNumero”, y también se registra la fila correspondiente de este valor en la variable “filaGanador”. 

worksheet

Finalmente, se declara un contador con el valor 1 y se muestra una cuarta y última iteración, la cual irá comparando el número que obtuvo cada participante con el número máximo almacenado en “maxNumero”. En el caso se encuentre otro número igual al valor de esta variable, y además que la fila es distinta al valor de la variable “filaGanador”, se procederá a igualar el contador a cero y se emite el mensaje "Vuelva a tirar los dados, hay más de un ganador"; pues de esta manera se demuestra que hay más de un ganador, y todos los participantes deberán volver a tirar los dados. Asimismo, solo si el contador es diferente a cero, se mostrará el mensaje "Ganó, se le asignó el mayor número", en la celda de la fila que contiene al ganador; ya que, el contador indica si existe solo un ganador o si hay más de uno.  

 contador

Segunda solución (sin macros)   

En este método de solución sin macros, lo primero que se hace es crear una tabla de tres columnas representando el nombre del participante, el número que consiguen al tirar el dado y el mensaje del resultado final. La cantidad de filas dependerá de la cantidad de participantes. 

alonso 1 alonso

Luego, en cada celda de la segunda columna se escribe la fórmula de números aleatorios con un intervalo de 1 a 6, con el fin de dar una representación a la acción de tirar un dado y conseguir un número al azar.

aleatorioentre

 Finalmente

, en cada celda correspondiente a la tercera columna, se introduce una función condicional, la cual permite mostrar el mensaje de: "Ganó, se le asignó el mayor número", en la fila de aquel participante que obtuvo un mayor número al tirar el dado.

función Si

 

Deja una respuesta

Los campos requeridos estan marcados con *.