¿Cómo ordenar números dentro de una celda en Excel?
Al trabajar con Excel, ordenar números en un rango de celdas o dentro de una columna es una tarea habitual y sencilla. Sin embargo, en ciertas situaciones puede necesitar ordenar números que están todos dentro de una única celda; por ejemplo, al recibir datos importados, informes consolidados o archivos exportados donde varios números aparecen agrupados sin distribuirse en celdas separadas. Ordenar manualmente los números en cada celda resulta ineficiente y propenso a errores, especialmente al manejar grandes volúmenes de datos o celdas con muchos dígitos. Con técnicas específicas, podrá reordenar rápidamente los números dentro de celdas individuales para cumplir con sus requisitos de organización o análisis de datos.
En este artículo descubrirá varios métodos prácticos para ordenar números dentro de celdas en Excel, incluidos enfoques basados en fórmulas, funciones definidas por el usuario y código VBA. Cada método ofrece ventajas únicas y se adapta a distintos escenarios, permitiéndole elegir la solución que mejor se ajuste a sus necesidades.
Ordenar números dentro de celdas con una fórmula
Ordenar números dentro de celdas con una función definida por el usuario
Ordenar números separados por comas dentro de celdas con código VBA
Ordenar números dentro de celdas mediante la función Relleno Relámpago de Excel
Ordenar números dentro de celdas con una fórmula
Para casos sencillos en los que todos los caracteres de una celda son dígitos individuales y no hay delimitadores, puede usar una fórmula matricial para ordenar automáticamente esos dígitos dentro de la celda. Este enfoque resulta especialmente útil al trabajar con códigos, identificadores o cualquier situación en la que necesite reorganizar los dígitos de una celda en orden ascendente o descendente.
Siga estos pasos detallados:
1. Inserte una nueva columna junto a sus datos. Por ejemplo, si sus números están en la celda A1, haga clic en la celda B1 e introduzca la siguiente fórmula:
=TEXT(SUM(SMALL(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))

2. Al tratarse de una fórmula matricial, confírmela pulsando Ctrl + Mayús + Entrar. Aparecerán llaves alrededor de la fórmula en la Barra de fórmulas, lo que indica que se evalúa como una matriz.
A continuación, arrastre el controlador de relleno hacia abajo para copiar la fórmula a las demás celdas en las que necesite la función de ordenación. Los números de cada celda se ordenarán automáticamente de forma ascendente. Vea el ejemplo siguiente:

Para facilitar su uso, asegúrese de hacer referencia a las celdas correctas y de que sus datos originales contengan únicamente dígitos, ya que la presencia de texto u otros caracteres puede provocar errores.
Notas:
- Si una celda contiene más de 15 dígitos, es posible que esta fórmula no ofrezca resultados precisos debido al límite predeterminado de Excel en cuanto a la precisión numérica. Para cadenas más largas o combinaciones de dígitos más complejas, considere emplear soluciones VBA o una función definida por el usuario.
- Para ordenar los números en orden descendente, puede sustituir PEQUEÑOpor GRANDEen la fórmula, y utilizar:
=TEXT(SUM(LARGE(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))
Esta fórmula funciona de la misma manera, pero ordena los dígitos de mayor a menor.
- En estas fórmulas, A1 hace referencia a la celda que contiene los números que desea ordenar. Si sus datos están en otra celda, actualice la referencia en consecuencia.
- Si aparece el error #¡VALOR!, asegúrese de que la celda contenga únicamente dígitos individuales, sin espacios ni otros caracteres.
- Al aplicar este método a un conjunto de datos grande, asegúrese de que las opciones de cálculo del sistema estén configuradas en automático, para que los resultados de la fórmula se actualicen correctamente al copiar o modificar los datos.

Descubra la magia de Excel con KUTOOLS AI
- Ejecución inteligente: Realice operaciones en celdas, analice datos y cree gráficos con comandos sencillos.
- fórmulas personalizadas: Cree fórmulas a medida para optimizar sus flujos de trabajo.
- Programación en VBA: Escriba e implemente código VBA con facilidad.
- Interpretación de fórmulas: Entienda las fórmulas complejas con facilidad.
- Traducción de texto: Rompa las barreras del idioma directamente en sus hojas de cálculo.
Ordenar números dentro de celdas con una función definida por el usuario
En ciertas situaciones —por ejemplo, al trabajar con números de más de 15 dígitos o cuando se requiere mayor flexibilidad—, una función definida por el usuario (UDF) constituye una alternativa sólida. Las UDF permiten automatizar la ordenación dentro de celdas, especialmente si sus necesidades van más allá de lo que las fórmulas estándar de Excel pueden gestionar.
Esta solución es ideal para usuarios que trabajan a menudo con columnas de datos importados o códigos agrupados en celdas individuales, especialmente cuando la longitud del contenido es considerable y los números requieren ordenarse repetidamente.
Así es como puede implementarla:
1. Pulse y mantenga presionado ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones (VBA).
2. En la ventana de VBA, haga clic en Insertar > Módulo y, a continuación, copie y pegue el siguiente código en la ventana del módulo recién creado:
Código VBA: Ordenar números dentro de celdas
Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'UpdatebyExtendoffice
Dim xOutput As String
For i = 0 To 9
For j = 1 To UBound(VBA.Split(pNum, i))
xOutput = IIf(pOrder, i & xOutput, xOutput & i)
Next
Next
SortNumsInCell = xOutput
End Function
3. Tras pegar el código, guarde y cierre el editor de VBA. Vuelva a su hoja de cálculo y, en una celda vacía adyacente a sus datos (por ejemplo, B1 o C1), introduzca:
=sortnumsincell(A1)

4. Arrastre el controlador de relleno para extender la función a otras celdas según sea necesario. Ahora, todos los números de las celdas seleccionadas se ordenarán automáticamente en orden ascendente, tal como se muestra a continuación:

Nota:Si desea que los números se ordenen en orden descendente, introduzca la siguiente fórmula en su lugar:
=sortnumsincell(A1,1)
El argumento adicional ()1) indica a la función que ordene de forma descendente.
Esta solución basada en UDF ofrece mayor flexibilidad y precisión con conjuntos de datos más grandes o complejos, y ayuda a evitar errores habituales en fórmulas causados por limitaciones en el número de dígitos.
Si encuentra errores de compilación, asegúrese de que el código del módulo se haya pegado correctamente y de que el nombre de la función coincida con el de la fórmula en su hoja de cálculo.
Ordenar números separados por comas dentro de celdas con código VBA
Cuando los números dentro de una celda están separados por delimitadores específicos —como comas, puntos y comas o incluso puntos—, las fórmulas integradas pueden no ser suficientes. En estos casos, un código VBA personalizado permite ordenar los números de forma eficiente, sin importar cuántas celdas deba procesar.
Los escenarios aplicables incluyen listas exportadas desde bases de datos, respuestas de encuestas recopiladas o cualquier conjunto de datos en el que los valores numéricos se almacenen en una única celda y estén separados por un carácter consistente.
Siga estos pasos para ejecutar el código VBA de ordenación:

1. Pulse ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Haga clic en Insertar > Módulo y pegue el siguiente código en la ventana del módulo:
Código VBA: Ordenar números separados por comas dentro de celdas
Sub SortNumsInRange()
'Update20140717Dim Rng As RangeDim WorkRng As RangeDim Arr As VariantOn Error Resume NextxTitleId = "KutoolsforExcel"
Set WorkRng = Application.SelectionSet WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set objArrayList = CreateObject("System.Collections.ArrayList")
For Each Rng In WorkRng Arr = VBA.Split(Rng.Value, ",")
For i =0 To UBound(Arr)
xMin = i For j = i +1 To UBound(Arr)
If Arr(xMin) > Arr(j) Then xMin = j End If Next j If xMin <> i Then temp = Arr(i)
Arr(i) = Arr(xMin)
Arr(xMin) = temp End If Next i Rng.Value = VBA.Join(Arr, ",")
NextEnd Sub 3. Para ejecutar el código, pulse F5. Aparecerá un cuadro de diálogo que le permitirá seleccionar el rango con las celdas que desea ordenar.

4. Tras confirmar con Aceptar, el código ordenará los números de todas las celdas seleccionadas en orden ascendente, aplicando los cambios directamente sin afectar al resto del contenido de las celdas.
Nota: Si sus números están separados por otro carácter (por ejemplo, un punto y coma o un espacio), basta con sustituir la coma «,» en Split(Rng.Value, ",") y Join(Arr, ",") por el delimitador elegido en ambas ubicaciones del código.
Este código solo ordena en orden ascendente. Para ordenar en orden descendente, deberá modificar la lógica de ordenación en el código VBA. Recuerde siempre guardar su libro antes de ejecutar cualquier macro en VBA, ya que los cambios se aplican de inmediato y no pueden deshacerse mediante la función Deshacer.
Si una celda contiene contenido no numérico, el código podría no producir el resultado esperado; revise sus datos en busca de contenido mixto antes de ejecutarlo.
Ordenar números dentro de celdas mediante la función Relleno Relámpago de Excel
Para conjuntos de datos pequeños o cuando los números dentro de una celda siguen un patrón predecible, la función Relleno Relámpago de Excel ofrece una solución rápida y sencilla. Este enfoque resulta especialmente eficaz cuando solo necesita ordenar números en unas pocas celdas y la estructura es simple.
Así es como puede utilizar Relleno Relámpago para ordenar números dentro de celdas:
1. En una nueva columna adyacente a sus datos, escriba manualmente la versión ordenada de los números de su primera celda (por ejemplo, si A1 contiene)8371, escriba 1378 en la celda B1).
2. Seleccione la siguiente celda de la misma columna y comience a escribir la versión ordenada para la siguiente entrada. Tras introducir un par de ejemplos, pulse Ctrl + E (acceso directo de Relleno Relámpago). Excel reconocerá automáticamente el patrón y rellenará las celdas restantes según su ejemplo de ordenación.
Esta técnica es rápida, pero resulta ideal para listas cortas o cuando los datos siguen un patrón muy regular. Solo necesita escribir un par de resultados ordenados para que Excel identifique la transformación deseada.
El Relleno Relámpago no funciona de forma fiable con patrones complejos ni cuando los números están separados por caracteres especiales. Revise siempre los resultados generados automáticamente para garantizar su precisión.
Nota: Este método podría no funcionar en todos los casos.
Al elegir un enfoque, tenga en cuenta la estructura de sus datos (dígitos individuales frente a números con separadores), la longitud de la cadena de datos y el número de celdas que debe procesar. Los métodos basados en fórmulas son ideales para cadenas cortas y sin delimitadores, mientras que las soluciones mediante VBA o funciones definidas por el usuario (UDF) brindan mayor flexibilidad y potencia para organizar datos complejos o extensos.
Compruebe atentamente sus datos originales en busca de espacios ocultos, texto no deseado o problemas de formato antes de aplicar cualquier solución. Tras ordenar los números, verifique el resultado comparando algunas muestras con la entrada original.
Si encuentra algún problema, asegúrese de que su versión de Excel sea compatible con fórmulas matriciales (Excel 2016 o posterior ofrece una compatibilidad mejorada) y de que las macros estén habilitadas para los métodos basados en VBA. Si la ordenación no funciona como esperaba, intente ajustar la fórmula o el código VBA para adaptarlo a la estructura de sus celdas.
Artículos relacionados:
¿Cómo ordenar en Excel números que contienen guiones?
¿Cómo ordenar datos por el valor más frecuente en Excel?
¿Cómo ordenar Dirección de correo electrónico por dominio en Excel?
¿Cómo ordenar filas en Excel para que las celdas vacías aparezcan en la parte superior?
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos