prucommercialre.com


Recogiendo Diferentes números aleatorios de un Range

Digamos que usted tiene una lista de los empleados (o productos, o widgets, o lo que sea) y que desea elegir dos artículos de esta lista, al azar. Hay un par de diferentes funciones de hoja que puede utilizar para recoger elementos de la lista, como el azar y RANDBETWEEN.

Muchas personas utilizan la función RANDBETWEEN porque es muy fácil y proporciona un número aleatorio dentro de un rango. Por lo tanto, si usted tiene 25 artículos en su lista, RANDBETWEEN puede devolver un número entre 1 y 25, que puede corresponder a elementos de la lista.

Por ejemplo, digamos que su lista de elementos se encuentra en el rango A2: A26, y que le da a este rango de los nombres de los elementos. A continuación, podría poner la siguiente fórmula en la celda C2 para devolver un número entre 1 y el número de objetos:

= RANDBETWEEN (1, filas (Elementos))

Copie esta fórmula a la celda C3, y ahora tiene dos números aleatorios que representan elementos de la lista. En la celda D2 y D3 se puede poner fórmulas como esta para obtener los nombres reales de la lista:

= INDEX (Elementos, C2)

El único problema con este enfoque es que es posible que ambas instancias de RANDBETWEEN (células C2 y C3) para devolver el mismo valor, y por lo tanto usted termina con el mismo elemento seleccionado en dos ocasiones de su lista.

Una forma de evitar este problema potencial es seleccionar en realidad tres elementos de la lista en lugar de dos. Si los dos primeros elementos son los mismos, entonces la tercera puede ser utilizado como un elemento de "retorno" para proporcionar la segunda único. El método no es infalible, ya que es posible, pero muy improbable que los tres-será el mismo.

Un enfoque diferente para la selección de los elementos de la lista sería asignar a cada elemento su propio valor aleatorio, y luego seleccione Basado en el 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, poner esta fórmula:

= RAND ()

Seleccione el rango de celdas (B2: B26) y el nombre de la gama, con un nombre como ItemNums. A continuación, puede determinar el primer nombre aleatorio de la lista utilizando la siguiente fórmula de matriz:

= Desplazamiento (A $ 1, SUM ((GRANDES (ItemNums, 1) = (ItemNums)) * fila (ItemNums)) - 1,0)

Con el fin de indicar que se trata de una fórmula de matriz, acepte presionando Shift + Ctrl + Enter. La fórmula debe devolver un solo nombre. A continuación, puede utilizar la siguiente fórmula de matriz para devolver el segundo nombre:

= Desplazamiento (A $ 1, SUM ((GRANDES (ItemNums, 2) = (ItemNums)) * fila (ItemNums)) - 1,0)

La razón por la que el uso del enfoque de la función RAND funciona mejor que usar RANDBETWEEN se debe a la posibilidad de que RAND volverá dos valores idénticos es infinitesimalmente pequeña, mientras que las posibilidades de RANDBETWEEN hacerlo es mucho mayor.

ExcelTips es su fuente de capacitación rentable Microsoft Excel. Esta punta (2874) se aplica a Microsoft Excel 97, 2000, 2002, y 2003. Usted puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y versiones posteriores) aquí: Recogiendo Diferentes números aleatorios de un rango.