2013-12-04

Números aleatorios de una lista o rango de opciones

Title En otras entradas hemos empleado los números aleatorios en repetidas ocasiones. En este caso, queremos generar números aleatorios de una lista o rango de opciones. Por ejemplo, elegir aleatoriamente un valor de la siguiente lista: 1, 3, 5, 7, 11.

Excel

Hay dos soluciones usadas frecuentemente en diversos foros:

1. Mediante una fórmula en la que introducimos la lista con los números a elegir.

=ELEGIR(ALEATORIO.ENTRE(1;5);1;3;5;7;11)
2. Usando un rango en lugar de teclear manualmente la lista dentro de la fórmula

=INDICE(A2:A6;ALEATORIO.ENTRE(1;5)) o 
=INDICE(A2:A6;ALEATORIO.ENTRE(1;CONTAR(A2:A6)))
F9 para generar otro nº aletorio
Podemos usar ambas fórmulas con una lista alfanumérica. Por ej.: Flaubert, Proust, Balzac, Montaigne, Racine.

1. Escribiendo la lista en el interior de la fórmula

=ELEGIR(ALEATORIO.ENTRE(1;5);"Flaubert";"Proust";"Balzac";"Montaigne";"Racine")
2. Usando un rango

=INDICE(E2:E6;ALEATORIO.ENTRE(1;5)) o 
=INDICE(E2:E6;ALEATORIO.ENTRE(1;CONTARA(E2:E6)))
F9 para generar otro nombre aleatorio

Access

En Access ya vimos cómo generar una muestra aleatoria. En este caso, creamos una tabla con los valores numéricos o de texto y extraemos una muestra de un sólo elemento: Con campo numérico en SQL:

SELECT TOP 1 TuTabla.*
FROM TuTabla
ORDER BY Rnd([campo numérico]);
Con campo de texto en SQL:

SELECT TOP 1 TuTabla.*
FROM TuTabla
ORDER BY Rnd(Len([campo de texto]));

Entradas relacionadas

2 comentarios:

  1. Gracias por el aporte. Algo que acelera bastante la introducción de los valores a elegir, es hacerlo a través de un nombre definido. Si se define un nombre con una matriz que contiene los meses del año, será posible utilizarlo en otras fórmulas sin tener que copiar todos los valores.

    ResponderEliminar
    Respuestas
    1. Muchas gracias por el comentario. Efectivamente, sería de utilidad en el caso de que necesitemos usar ese rango repetidamente.

      Otra opción sería convertir el rango en tabla de Excel, CTRL+T. Respecto al nombre definido tendría la ventaja de que se expandiría automáticamente si añadimos más elementos:

      =INDICE(Tabla1;ALEATORIO.ENTRE(1;CONTARA(Tabla1)))

      Eliminar

Nube de datos