sábado, junio 16, 2007

Números aleatorios únicos con Excel

En mi nota sobre Cómo generar números aleatorios con Excel mostraba cómo generar una serie de números aleatorios únicos, es decir, sin repeticiones. Esta técnica se basaba en un generar intencionalmente una referencia circular.
Hay, por supuesto, otras posibilidades que detallo en este archivo




1 – "Unique Numbers": Microsoft propone un macro para generar números aleatorios únicos. Esta macro siempre pone los resultados a partir de la celda A3 (en el original desde la celda A1, pero la he modificado para poder poner el comando en el encabezamiento).

2 – "RndNum": no recuerdo de que foro tome esta macro.

3 – "UDF" (user defined function): tomada del sitio de Ozgrid. Esta es una función volátil, es decir, cada vez que se produce algún cambio en la hoja, Excel recalcula la función. El resultado aparece como texto en al celda que contiene la función.

4 – "MRAND": mi favorito. Esta función forma parte del complemento desarrollado por Laurent Longre que ya he mencionado en mi nota sobre la función INDIRECTO con cuadernos Excel cerrados. Esta función tiene muchas ventajas. Al ponerla como función matricial, nos permite definir una matriz (x filas X y columnas) de números aleatorios no repetidos. Además podemos definir si la función debe ser volátil o no. La sintaxis es:
{=MRAND(máximo, inicio, cantidad, volátil o estática)}.

Este rand01archivo contiene los ejemplos y los códigos de las macros.




Technorati Tags:

2 comentarios:

negro berna dijo...

he construido un formato de preguntas a mis estudiantes, de tal manera que ellos se acerquen al computador y oprimiendo pregunta, esta se muestre de forma aleotaria. el problema es que caundo los alumnos eligen la respuesta, la pregunta tamb{en se modifica, por que el aleatorio as{i lo hace. que debo hacer para que esto no suceda.

Jorge L. Dunkelman dijo...

Esto se debe a que ALEATORIO es una función de tipo volátil. Estas funciones son recalculadas cada vez que alguna fórmula de la hoja es recalculada. Por eso, cuando el alumno elige la respuesta, se dispar el cálculo de la función y aparece otra pregunta.
La única solución que se me ocurre es usar macros para poner la pregunta aleatoria como texto en una celda y no como el resultado de una función en la hoja.