Excel - ordenar números separados por guion

 
Vista:

ordenar números separados por guion

Publicado por Orlando (1 intervención) el 17/08/2010 04:39:06
Tengo una columna en excel con formato de número y personalizado de manera tal que separa los últimos 5 dígitos por un guión (107032 - 50167).

Necesito ordenar la columna de manera ascendente pero tomando como base solo los dígitos que hay después del guión? Cómo hacerlo?
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 JuanC

RE:ordenar números separados por guion

Publicado por JuanC (1237 intervenciones) el 17/08/2010 15:47:20
deberías separar los valores en dos columnas, ordenarlos y volver a agruparlos
otra manera es programando una macro

Saludos, desde Baires, JuanC
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

RE:ordenar números separados por guion

Publicado por Antoni Masana (16 intervenciones) el 18/08/2010 11:51:00
Esta macro hace lo que deseas pero deberás hacer los cambios oportunos.

Te describo los pasos que realiza

- Selecciona la columna A que es la que tiene la lista

- Con la opción: "Texto en columnas" de la pestaña "Datos" separo los números en dos columnas con el separador "-" (Resultado en Columna A y B

- Ordena las columnas por B y A

- En la columna C pongo la Formula: "=CONCATENAR(A1;" - ";B1)"

- Copio la formula a toda la columna C (en mi ejemplo de la C1 a la C7)

- Hago un "Copiar Especial" y uso la opción "Pegar Datos" y copio la Columna C sobre la A

- Borro las columnas B y C

- Se coloca en la celda A1

Esta es la macro

-----------------------------------------

Sub Macro1()
'
' Macro1 Macro
'

'
Columns("A:A").Select

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="-", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Columns("A:B").Select

ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("B1:B7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("A1:A7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Hoja1").Sort
.SetRange Range("A1:B7")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Range("C1").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-2],"" - "",RC[-1])"

Range("C1").Select
Selection.AutoFill Destination:=Range("C1:C7"), Type:=xlFillDefault

Range("C1:C7").Select
Columns("C:C").Select
Selection.Copy

Columns("A:A").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Columns("B:C").Select
Application.CutCopyMode = False
Selection.ClearContents

Range("A1").Select
End Sub
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