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 archivo contiene los ejemplos y los códigos de las macros.




Technorati Tags:

11 comentarios:

  1. 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.

    ResponderBorrar
  2. 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.

    ResponderBorrar
  3. Ante todo me gusta mucho tu blog. Felicidades.
    Me gustaría bajar el archivo rand01, con los ejemplos y no soy capaz. Da error. Snips tiene como un gestor de descargas, que salió, al dar a download. Me arriesgue a instalarlo y tampoco. -). En fin a ver si me puedes hechar un cable....

    ResponderBorrar
  4. Así es, eSnips se ha vuelto imposible. Estoy pasando de a poco los archivos a mu i propio sitio. Estaré poniendo el enlace en esta nota en las próximas horas.

    ResponderBorrar
  5. Hola Jorge
    Otra posibilidad sin macros ni UDF sería combinar la función aleatorio y jerarquía. Eso sí, habría que tener una columna auxiliar.
    Por ejemplo para una lotería primitiva en España (elegir 6 números entre 49) podríamos hacer lo siguiente:
    De A1 a A49 ponemos la fórmula:
    =ALEATORIO()
    Y en otra columna, por ejemplo en C1, ponemos:
    =JERARQUIA(A1;$A$1:$A$49)
    Y autorrellenamos hasta C6
    Con todos los decimales que genera la función ALEATORIO (del orden de 15 o 16), yo diría que es prácticamente imposible que se repitan.

    Un saludo y feliz 2011

    ResponderBorrar
  6. Buenos dias. Exepcional el foro.

    No puedo ulitizar la funcion MRAND no logro encontrar el complemento. Tenes el linck de descarga directo?

    Lucas.

    ResponderBorrar
  7. Lucas

    en el párrafo donde menciono la función MRAND (4) hay un enlace a la nota anterior donde, a su vez, hay un enlace para descargar el complemento.

    Una aclaración: esto no es un foro, es un blog.

    ResponderBorrar
  8. Jorge,

    Muchas gracias. Perdon por mi error.

    Desde en ese link no esta mas el archivo. Igual lo puede conseguir.

    Nuevamente muchas gracias.

    ResponderBorrar
  9. Hola,
    Te felicito por tu Blog, es excelente. ¿la función MRAND esta disponible para 2010? no la he podido hacer trabajar con el complemento 2007

    ResponderBorrar
  10. Según lo publicado por Laurent Longre en la página de descarga, el complemento MoreFunc funciona también en Excel 2007. Supongo que también en Excel 2010.
    Te sugiero que descargues el complemento actualizado.

    ResponderBorrar
  11. Fantástico! Me salvaste!!! Mil gracias

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.