¿Cómo ordenar números dentro de una celda en Excel?
Es fácil y común para nosotros ordenar números en una lista de columnas, pero ¿alguna vez ha intentado ordenar números dentro de una sola celda? Puede que no haya una buena manera para usted, excepto organizarlos uno por uno, aquí, hablaré sobre cómo ordenar los números dentro de las celdas en Excel.
Ordenar números dentro de celdas con fórmula
Ordenar números dentro de las celdas con la función definida por el usuario
Ordene los números separados por comas dentro de las celdas con código VBA
Ordenar números dentro de celdas con fórmula
Para ordenar los números dentro de las celdas en una hoja de trabajo, puede aplicar la siguiente fórmula larga, haga lo siguiente:
1. Junto a sus datos, ingrese la siguiente fórmula, en este ejemplo, la escribiré en la celda C1, vea la captura de pantalla:
=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. Entonces presione Ctrl + Shift + Enter teclas juntas, luego arrastre el controlador de relleno al rango en el que desea aplicar esta fórmula, y obtendrá los números ordenados de pequeños a grandes. Ver captura de pantalla:
Notas:
1. Si el dígito del número es más de 15 en la celda, esta fórmula no obtendrá el resultado correcto.
2. Si desea ordenar los números en orden descendente, puede usar esta fórmula: =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))).
3. En las fórmulas anteriores, A1 indica la celda que contiene los números que desea ordenar, puede cambiarla según sus necesidades.
Ordenar números dentro de las celdas con la función definida por el usuario
Como existen algunas limitaciones de la fórmula, puede utilizar lo siguiente Función definida por el usuario para ordenar números en celdas de más de 15 dígitos.
1. Mantenga pulsado el ALT + F11 llaves, y abre el Ventana de Microsoft Visual Basic para aplicaciones.
2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.
Código VBA: ordenar números dentro de las celdas
Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'Update 20140717
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. Luego guarde y cierre este código, vuelva a su hoja de trabajo e ingrese esta fórmula = sortnumsincell (A1) en una celda en blanco junto a sus datos, vea la captura de pantalla:
4. Y luego arrastre el controlador de relleno a las celdas que desea que contengan esta fórmula, y todos los números en las celdas se han ordenado en orden ascendente como se muestra en la siguiente captura de pantalla:
Note: Si desea ordenar los números en orden descendente, ingrese esta fórmula = sortnumsincell (A1,1).
Ordene los números separados por comas dentro de las celdas con código VBA
Si sus números están separados por ciertos caracteres como coma, punto y coma, punto, etc., como se muestra en la siguiente captura de pantalla, ¿cómo podría ordenarlos en celdas? Ahora, presento un código VBA para que los clasifique.
1. Mantenga pulsado el ALT + F11 teclas para abrir el Ventana de Microsoft Visual Basic para Aplicaciones.
2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.
Código de VBA: los números de clasificación están separados por comas dentro de las celdas
Sub SortNumsInRange()
'Update 20140717
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set 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, ",")
Next
End Sub
3. Entonces presione F5 para ejecutar este código, y luego seleccione sus celdas que contienen los números en el cuadro emergente, vea la captura de pantalla:
4. Y luego haz clic OK, todos los números de las celdas se han ordenado de forma ascendente en el rango original.
Note: Puede cambiar la coma "," por cualquier otro carácter que necesite en el código anterior. Y este código solo puede ordenar los datos de forma ascendente.
Artículos relacionados:
¿Cómo ordenar números con guiones en Excel?
Cómo ordenar los datos por el valor más frecuente en Excel?
¿Cómo ordenar la dirección de correo electrónico por dominio en Excel?
¿Cómo ordenar filas para poner las celdas en blanco en la parte superior en Excel?
Las mejores herramientas de productividad de oficina
Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haga clic aquí para obtener la función que más necesita...
Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Habilite 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 de la misma ventana, en lugar de en nuevas ventanas.
- ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!