¿Como puedo ordenar valores duplicados en excel?

Escribo ya que tengo una consulta.

Tengo una tabla con más o menos 10,000 registros, lo que quiero hacer, es poder ordenar los datos de una columna pero de la misma forma que otra. Adjunto una imagen para poder explicar mejor:

Lo que quiero es que los datos de la COLUMNA2, sean ordenados tal y como están en la COLUMNA1, omitiendo los datos que no están, para que al final, la COLUMNA2 me quede de esta manera:

¿Esto es posible?

1 Respuesta

Respuesta
2

En tu ejemplo pusiste en la columna2:

Dato3, dato2 y dato1

Pero en el resultado pusiste otros valores:

Dato1, dato3 y dato5

Puedes revisar tus ejemplos y explicar qué necesitas.

Gracias por tu respuesta Dante.

Mil disculpas, adjunto la imagen como tiene que ser. 

Saludos.

Sola selecciona la columna2 y ordena los datos.

Si los datos están dentro de una Tabla. Puedes copiar solamente la columna2 a un rango de celdas. Ordenas los valores y los regresas a la tabla.

Muchas gracias, el problema es que si en la columna 2 no hay ciertos datos, entonces van a quedar hasta abajo celdas vacías, y aparte, lo que yo quiero es ordenar de tal forma que los datos de la columna 2 queden ordenados igual que en la columna 1, y si no existe el dato en la columna 1, que quede en blanco la columna dos.

Es prácticamente así como lo tengo en estas dos imágenes, te pido una disculpa porque no he sabido formular la pregunta.

En primer lugar, tengo los datos de la columna 1, es una base de datos grande, y luego tengo los datos de la columna 2, que es una base de datos más pequeña:

Entonces, lo que quiero es que los datos de la columna 2, se ordenen a la par de su igual en la columna uno, es como decir que quiero que la columna 2 encuentre su pareja en la columna 1:

De antemano, muchas gracias!

Prueba el siguiente código, suponiendo que la columna1 es la columna A y la columna2 es la B:

Sub ordenaDatos()
  Dim f As Range
  Dim i As Long
  Dim arr1 As Variant, arr2 As Variant
  '
  arr1 = Range("B2:B" & Range("A" & Rows.Count).End(3).Row).Value
  ReDim arr2(1 To UBound(arr1), 1 To 1)
  For i = 1 To UBound(arr1)
    If arr1(i, 1) <> "" Then
      Set f = Range("A:A").Find(arr1(i, 1), , xlValues, xlWhole, , , False)
      If Not f Is Nothing Then
        arr2(f.Row - 1, 1) = arr1(i, 1)
      End If
    End If
  Next
  Range("B2").Resize(UBound(arr2)).Value = arr2
End Sub

[Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas