KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Venta de marzo: 20 % de descuento

Aleatorizar una lista en Excel (tutorial paso a paso sencillo)

AutoraAmanda Li Fecha de modificación

Ordenar aleatoriamente es una forma rápida y sencilla de asegurar que todos los elementos aparezcan con la misma probabilidad. En este tutorial, te mostramos cómo aleatorizar o mezclar fácilmente una lista en Excel en pocos pasos.

Una captura de pantalla que ilustra el resultado de la aleatorización en Excel

Vídeo: Aleatorizar una lista en Excel


Aleatorizar una lista con funciones

En esta sección, le mostraré cómo mezclar una lista utilizando las funciones integradas de Excel.

Aleatorizar una lista con la función ALEATORIO

Los usuarios de cualquier versión de Excel pueden reordenar aleatoriamente su conjunto de datos original combinando la función ALEATORIO con la herramienta Ordenar. Siga los pasos a continuación.

Paso 1: Introduzca la fórmula ALEATORIO

Seleccione la celda situada junto a la celda que está encima de la lista que desea aleatorizar, introduzca la fórmula =ALEATORIO() y pulse Intro.

=RAND()

Fórmula ALEATORIO en una celda

Paso 2: Rellene la fórmula ALEATORIO en las demás celdas

Haga doble clic en el controlador de relleno (el pequeño cuadrado verde situado en la esquina inferior derecha de la celda que contiene la fórmula) para aplicarla automáticamente a las celdas inferiores.

Fórmula ALEATORIO aplicada a otras celdas

Paso 3: Ordene los resultados de ALEATORIO para mezclar la lista

1. Seleccione «B2:B8», el rango que contiene la fórmula ALEATORIO.

2. Haga clic en «Ordenar y filtrar» > «Ordenar de menor a mayor» en el grupo "Edición« de la pestaña »Inicio".

Opción Ordenar de menor a mayor en la cinta de opciones

3. En el cuadro de diálogo emergente, seleccione «Expandir la selección» y, a continuación, haga clic en «Ordenar».

Seleccionar la opción 'Expandir la selección'

Resultado

¡Listo! La lista ya está aleatorizada, tal como se muestra a continuación.

La lista se ha aleatorizado

Nota: La función ALEATORIO de Exceles volátil: recalcula su resultado con cada cambio en la hoja de cálculo. Por eso, los números en la columna B cambiaron inmediatamente tras la ordenación. Si desea volver a mezclar la lista, repita el paso3anterior. De lo contrario, puede eliminar simplemente la columna con la función ALEATORIO.
Aleatorizar una lista con las funciones ALEATORIO.ENTRE, ORDENAR.POR y FILAS (Excel 365/2021)

Si utiliza versiones más recientes de Excel, como Excel para Microsoft 365, Excel 2021 o Excel para la Web, las fórmulas RANDARRAY, SORTBY y ROWS le permitirán obtener al instante una lista aleatoria en la posición que especifique.

Paso 1: Introduzca la fórmula con ALEATORIO.ENTRE, ORDENAR.POR y FILAS

Seleccione una celda vacía donde quiera obtener el resultado aleatorizado, escriba la siguiente fórmula (recuerde sustituir ")A2:A8"« de la fórmula siguiente por la lista original que desea aleatorizar) y pulse »Intro".

=SORTBY(A2:A8,RANDARRAY(ROWS(A2:A8)))

Nota:
  • Excel devuelve un error «#¡RELLENAR!» cuando el rango de relleno (en este caso, B2:B8) no está vacío.
  • La fórmula es volátil: recalcula su resultado cada vez que se realiza un cambio en la hoja de cálculo. Si desea volver a mezclar la lista, pulse F9.
  • El resultado de la fórmula (lista aleatorizada) no se puede editar. Si necesita modificar la lista aleatorizada, siga el paso siguiente.

(Opcional) Paso 2: Copie y pegue el resultado de la fórmula para poder editarlo

Si solo desea ver un resultado aleatorio, puede omitir este paso. Si desea editar la lista mezclada aleatoriamente, copie el resultado de la fórmula y péguelo como valores.

1. Seleccione el resultado de la fórmula y pulse «Ctrl» + «C» para copiarlo.

2. Haga clic con el botón derecho en una celda donde desee pegar el resultado copiado. (También puede pegarlo en su ubicación original.)

3. Seleccione la opción «Pegar valores» del menú contextual.

Resultado

Ahora obtendrá una lista mezclada y editable, como se muestra a continuación.


Aleatorizar una lista en Excel con Kutools en 2 clics

Si está cansado de usar fórmulas y prefiere recurrir a un complemento, la función Ordenar, Seleccionar o Aleatorizar de Kutools para Excel le permitirá realizar una ordenación aleatoria de forma mucho más sencilla y con más opciones. Proceda del siguiente modo:

Kutools para Excelofrece más de 300 funciones avanzadas para simplificar tareas complejas, potenciando la creatividad y la eficiencia.Integrado con capacidades de IA, Kutools automatiza tareas con precisión, haciendo que la gestión de datos sea sencilla.Más información sobre Kutools para Excel...         Prueba gratuita...

Primero, seleccione la lista que desea mezclar. A continuación, vaya a Kutools > Rango > Ordenar, Seleccionar o Aleatorizar. En el cuadro de diálogo emergente Ordenar, Seleccionar o Aleatorizar, seleccione «Fila completa» y haga clic en «Aceptar».

Seleccione la opción Filas completas en el cuadro de diálogo para mezclar la lista

Nota:

Aleatorizar una lista con VBA

Si prefiere aleatorizar una lista mediante un método VBA, siga estos pasos.

Nota: No puede deshacer una acción tras ejecutar una macro VBA. Por tanto, haga una copia de la lista en otro lugar por si necesita los datos originales en el futuro.

Paso 1: Seleccione la lista que desea mezclar

La lista que se va a mezclar está seleccionada

Paso 2: Copie el código VBA en la ventana de módulo

1. Pulse «Ctrl» + «F11» para abrir el editor de VBA y, a continuación, haga clic en «Insertar» > «Módulo» para abrir una ventana de código de módulo.

Haga clic en Insertar > Módulo en el editor de VBA

2. Copie y pegue el siguiente código VBA en la ventana del módulo que se ha abierto.

Sub RandomSort()
'Update by ExtendOffice
Dim xRg As Range
Dim xNum, xF, xI As Integer
Dim xWSh, xAWSh As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xAWSh = Application.ActiveSheet
Set xRg = ActiveWindow.RangeSelection
Set xWSh = Worksheets.Add
xNum = xRg.Count
For xF = xNum To 1 Step -1
    xI = WorksheetFunction.RandBetween(1, xF)
    xWSh.Range("A1").Value = xRg.Item(xI)
    xRg.Item(xI) = xRg.Item(xF)
    xRg.Item(xF) = xWSh.Range("A1")
Next
xWSh.Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Paso 3: Ejecute el código VBA

En la ventana de código, pulse «F5» o haga clic en el botón Botón Ejecutar para ejecutar este código.

El botón Ejecutar en la ventana de código

Resultado

La lista se ha mezclado

Nota: Si desea aleatorizar la lista de nuevo, repita el paso3anterior.