Excel. ¿Cómo poner duplicados en filas?

Necesito eliminar los duplicados de una columna (tabla izquierda) pero sin perder los valores que aparece al lado. Es decir una tabla como la derecha; una fila para cada línea y cuantos tipos tengo de la misma. ¿Podéis ayudarme?

Gracias!

Respuesta
2

Ejecuta la siguiente macro

Sub Duplicados_En_filas()
'Por Dante Amor
    Application.ScreenUpdating = False
    Range("D1", Cells(Rows.Count, Columns.Count)).ClearContents
    f = 2
    j = 2
    ant = Cells(f, "A").Value
    For i = f To Range("A" & Rows.Count).End(xlUp).Row + 1
        If Cells(i, "A").Value <> ant Then
            Cells(j, "D").Value = ant
            Range(Cells(f, "B"), Cells(i - 1, "B")).Copy
            Cells(j, "E").PasteSpecial xlValues, Transpose:=True
            f = i
            j = j + 1
        End If
        ant = Cells(i, "A").Value
    Next
    Range("D1").Value = Range("A1").Value
    Range("E1").Value = "Tipo1"
    Range("E1").AutoFill Range("E1", Cells(1, Range("E1").CurrentRegion.Columns.Count + 3))
    Application.ScreenUpdating = True
    Application.CutCopyMode = False
    MsgBox "Fin"
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
    1. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Duplicados_En_filas
  9. Aceptar.
  10. Para ejecutarla dale click a la imagen.

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

2 respuestas más de otros expertos

Respuesta
2

Necesitarías agregar una fila y una columna extra.

En la columna nueva pones esta fórmula:

=CONTAR.SI($B$2:B3,B3)&B3

En la fila nueva enlistas tu numero de resultados en este caso yo lo enumere del 1 al 11 por que fue el máximo resultado que me dio en la columna nueva:

Después en la tabla que vas a hacer pones esta fórmula:

=BUSCARV(F$1&$E3,$A$3:$C$18,3,FALSO)

y ya solo pegas la formula en toda la tabla:

Si quieres lo puedes combinar con un si. Error para que no te arroje los n/a, yo no lo pongo por que tengo una versión más vieja.
Suerte.

Respuesta
2

Este es el resultado de la macro te crea una tabla de registros únicos asignado cada tipo a donde corresponde

Sub QUITAR_DUPLICADOS()
Set DATOS = Range("A1").CurrentRegion
With DATOS
    F = .Rows.Count
    C = .Columns.Count
    .Columns(C + 3).CurrentRegion.Clear
    Set TABLA = .Columns(C + 3).Resize(F, C)
    With TABLA
        .Columns(1).Value = DATOS.Columns(1).Value
        .RemoveDuplicates Columns:=1
        F = .CurrentRegion.Rows.Count
         For I = 2 To F
            LINEA = .Cells(I, 1)
            CUENTA = WorksheetFunction.CountIf(DATOS.Columns(1), LINEA)
            FILA = WorksheetFunction.Match(LINEA, DATOS.Columns(1), 0)
            Set TABLA2 = DATOS.Rows(FILA).Resize(CUENTA)
            For J = 1 To CUENTA
                .Cells(I, J + 1) = TABLA2.Cells(J, 2)
            Next J
         Next I
         Set TABLA = TABLA.CurrentRegion
         .Rows(1).Font.Bold = True
         For I = 2 To .Columns.Count
            .Cells(1, I) = "TIPO " & I - 1
         Next I
    End With
End With
Set TABLA = Nothing: Set TABLA2 = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas