Excel - ordenar datos de una columna

 
Vista:
sin imagen de perfil

ordenar datos de una columna

Publicado por Pedro (2 intervenciones) el 20/01/2015 12:32:59
Muy buenos dias

Tengo un problema:
Resulta que tengo una columna A de la siguiente forma:

Columna A
1;2;3;4
1;4;3
4;1
4;2
5;3;1

y yo querria cambiarlo para que todos quedaran ordenados, es decir:
Columna A
1;2;3;4
1;3;4
1;4
2;4
1;3;5

¿Alguien sabe si existe alguna forma para poder hacerlo utilizando formulas?


Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de LaO

ordenar datos de una columna

Publicado por LaO (67 intervenciones) el 20/01/2015 15:29:57
Hola Pedro,

Para lograr esto es necesario construir una función personalizada (UDF). Pulsa Alt + F11 y en el menú escoje
"Insertar->Modulo" y copia el siguiente código :
--------------------------------------------------------------------------------------------------------------------------------------------------->

Function fnSortStringData(ByVal strData As String) As String
Dim j As Integer
Dim strChar As String, strArray(10) As String, s As String, strSep As String
Dim varData As Variant

'vars
s = Empty
strSep = Chr(59)

'cleaning array data
strArray(0) = Empty: strArray(1) = Empty: strArray(2) = Empty: strArray(3) = Empty: strArray(4) = Empty
strArray(5) = Empty: strArray(6) = Empty: strArray(7) = Empty: strArray(8) = Empty: strArray(9) = Empty

'explore string data
For j = 1 To Len(strData)
strChar = Mid(strData, j, 1)

Select Case Asc(strChar)

Case 48: strArray(0) = strChar
Case 49: strArray(1) = strChar
Case 50: strArray(2) = strChar
Case 51: strArray(3) = strChar
Case 52: strArray(4) = strChar
Case 53: strArray(5) = strChar
Case 54: strArray(6) = strChar
Case 55: strArray(7) = strChar
Case 56: strArray(8) = strChar
Case 57: strArray(9) = strChar

End Select

Next j

'get sorted array
For Each varData In strArray

If varData <> Empty Then

If s = Empty Then
s = varData
Else
s = s & strSep & varData
End If

End If

Next

'returning result
fnSortStringData = s

End Function

--------------------------------------------------------------------------------------------------------------------------------------------------->

Luego en la celda donde desees ver el resultado escribes la formula (Ej celda A1) :

=fnSortStringData(A1)

Con esta función se ordenará la cadena con los criterios deseados de menor a mayor.

Un saludo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

ordenar datos de una columna

Publicado por Pedro (2 intervenciones) el 20/01/2015 15:49:03
Funciona perfectamente

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar