Seleccionar nombres aleatorios (Microsoft Excel)
Una tarea común para muchas personas es elegir varios nombres aleatorios de una lista grande. Por ejemplo, puede estar organizando un concurso para su comunidad y tiene 1,000 personas que han ingresado. Con sus nombres en cada fila de una tabla, es posible que se pregunte cómo seleccionar un cierto número de nombres al azar.
Como suele ser el caso de Excel, hay varios enfoques diferentes que puede adoptar. Cada enfoque examinado en esta sugerencia asume que los nombres entre los que debe seleccionar se enumeran en las celdas A1 a A1000.
Por supuesto, su rango de nombres podría ser más corto o más largo, pero el punto es que están en celdas contiguas en la columna A. Los ejemplos también asumen que necesita seleccionar 15 nombres al azar de la lista.
El primer enfoque es utilizar la función INDICE. Ingrese la siguiente fórmula en las celdas B1: B15:
=INDEX(A:A,INT((RAND()*1000)+1),1)
Una fórmula similar usa la función OFFSET:
=OFFSET($A$1,ROUNDUP(RAND()*1000,0),0,1,1)
Es posible, pero no probable, que obtenga el mismo nombre dos veces en la lista resultante. (La improbabilidad se debe al tamaño de la lista original. Cuanto más grande sea la lista, menos probable será que haya duplicados en la lista extraída). Si obtiene un nombre duplicado, simplemente fuerce un nuevo cálculo de su hoja de trabajo presionando F9 . Cada vez que vuelve a calcular, se regenera la lista de nombres extraídos.
Otro enfoque potencial requiere el uso de varias columnas. Simplemente siga estos pasos:
-
Ingrese = RAND () en la celda B1.
-
Ingrese la siguiente fórmula en la celda C1:
-
Seleccione el rango B1: C1 y complete hasta la fila 1000.
-
Seleccione el rango B1: C1000.
-
Presione Ctrl + C para copiar el rango al Portapapeles.
-
Elija Pegado especial en el menú Editar. Excel muestra el cuadro de diálogo Pegado especial. (Ver figura 1)
-
Asegúrese de que el botón de opción Valores esté seleccionado.
-
Haga clic en Aceptar. Ahora tiene valores estáticos en B1: C1000, lo que significa que no cambiarán cada vez que se recalcula la hoja de trabajo.
-
Seleccione una celda en la columna C.
-
Elija Ordenar en el menú Datos. Excel muestra el cuadro de diálogo Ordenar.
(Ver figura 2)
-
Haga clic en Aceptar. La tabla (rango A1: C1000) está ordenada según los valores de la columna C.
El resultado es que la columna C ahora contiene una clasificación de todos los números aleatorios en la columna B. Las primeras 15 filas contienen sus nombres aleatorios.
En este enfoque, también podría haber omitido la columna C por completo y simplemente haber ordenado su lista en función de los valores aleatorios estáticos en la columna B.
Nuevamente, los 15 primeros serían sus nombres aleatorios.
Por supuesto, hay varias soluciones macro que puede utilizar para este problema. La codificación de cualquier macro será similar, confiando en la función RND de VBA para generar números aleatorios. De todas las posibles soluciones macro, quizás la siguiente sea la más exclusiva y ofrezca algunas ventajas que no están disponibles con las soluciones de libro de trabajo discutidas hasta ahora:
Sub GetRandom() Dim iRows As Integer Dim iCols As Integer Dim iBegRow As Integer Dim iBegCol As Integer Dim J As Integer Dim sCells As String Set TempDO = New DataObject iRows = Selection.Rows.Count iCols = Selection.Columns.Count iBegRow = Selection.Row iBegCol = Selection.Column If iRows < 16 Or iCols > 1 Then MsgBox "Too few rows or too many columns" Else Randomize Timer sCells = "" For J = 1 To 15 iWantRow = Int(Rnd() * iRows) + iBegRow sCells = sCells & Cells(iWantRow, iBegCol) & vbCrLf Next J TempDO.SetText sCells TempDO.PutInClipboard End If End Sub
Para usar esta macro, simplemente seleccione los nombres de los que desea seleccionar los 15 nombres aleatorios. En los ejemplos hasta ahora, seleccionaría el rango A1: A1000. Luego, la macro extrae 15 nombres al azar de las celdas y los coloca en el Portapapeles. Cuando ejecuta la macro, puede pegar el contenido del Portapapeles donde quiera. Cada vez que se ejecuta la macro, se selecciona un grupo diferente de 15.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (2811) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posteriores) aquí:
link: / excelribbon-Selecting_Random_Names [Selección de nombres aleatorios]
.