Digamos que tiene una lista de empleados (o productos, o widgets, o lo que sea) y que desea elegir dos elementos de esta lista, al azar.

Hay un par de funciones de hoja de trabajo diferentes que puede usar para seleccionar elementos de la lista, como RANDOM y RANDBETWEEN.

Mucha gente usa la función RANDBETWEEN porque es muy fácil y proporciona un número aleatorio dentro de un rango. Por lo tanto, si tiene 25 elementos en su lista, RANDBETWEEN puede devolver un número entre 1 y 25, que luego puede corresponder a los elementos de la lista.

Por ejemplo, digamos que su lista de elementos está en el rango A2: A26 y que le da a este rango el nombre Elementos. Luego, puede poner la siguiente fórmula en la celda C2 para devolver un número entre 1 y el número de elementos:

=RANDBETWEEN(1,ROWS(Items))

Copie esta fórmula en la celda C3 y ahora tendrá dos números aleatorios que representan elementos de la lista. En las celdas D2 y D3, podría poner fórmulas como esta para obtener los nombres reales de la lista:

=INDEX(Items,C2)

El único problema con este enfoque es que es posible que ambas instancias de RANDBETWEEN (celdas C2 y C3) devuelvan el mismo valor y, por lo tanto, termine con el mismo elemento seleccionado dos veces de su lista.

Una forma de solucionar este problema potencial es seleccionar tres elementos de la lista en lugar de dos. Si los dos primeros elementos son iguales, el tercero se puede utilizar como elemento «alternativo» para proporcionar el segundo único. El método no es infalible, ya que es posible, pero bastante improbable, que los tres sean iguales.

Un enfoque diferente para seleccionar elementos de la lista sería asignar a cada elemento su propio valor aleatorio y luego seleccionar en función del número más alto de la serie. La función RANDOM devuelve un valor aleatorio entre 0 y 1. En cada celda de la columna B, justo a la derecha de cada elemento de la columna A, ponga esta fórmula:

=RAND()

Seleccione el rango de celdas (B2: B26) y asigne un nombre al rango, usando un nombre como ItemNums. Luego puede determinar el primer nombre aleatorio de la lista usando la siguiente fórmula de matriz:

=OFFSET(A$1,SUM((LARGE(ItemNums,1)=(ItemNums))*ROW(ItemNums))-1,0)

Para indicar que se trata de una fórmula de matriz, introdúzcala presionando Shift + Ctrl + Enter. La fórmula debe devolver un solo nombre. Luego puede usar la siguiente fórmula de matriz para devolver el segundo nombre:

=OFFSET(A$1,SUM((LARGE(ItemNums,2)=(ItemNums))*ROW(ItemNums))-1,0)

La razón por la que usar el enfoque de la función RAND funciona mejor que usar RANDBETWEEN es porque la probabilidad de que RAND devuelva dos valores idénticos es infinitesimalmente pequeña, mientras que las posibilidades de que RANDBETWEEN lo haga es mucho mayor.

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (12082) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.

Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Picking_Different_Random_Numbers_from_a_Range [Escogiendo diferentes números aleatorios de un rango].