Concatenar en excel con varias condiciones y valores duplicados

Buenas noches:

Tengo en excel lo siguiente:

A,                              B

276721         DCTC000949

276721         DCTC000949

318557         DCTC31165

318557         DCTC31165

318557         DCTC32299

318557         DCTC33030

cuando la un dato de la columna A tiene datos diferente en B, debo llevar a la columna C la concatenación de los valores de B sin duplicar,de lo contrario llevar el mismo valor de B a C. El resultado que espero para lo anterior es el siguiente:

A,                              B                                             C

276721         DCTC000949                 DCTC000949.pdf

276721         DCTC000949                 DCTC000949.pdf

318557         DCTC31165                   DCTC31165_DCTC32299_DCTC33030

318557         DCTC31165                   DCTC31165_DCTC32299_DCTC33030

318557         DCTC32299                   DCTC31165_DCTC32299_DCTC33030

318557         DCTC33030                   DCTC31165_DCTC32299_DCTC33030

1 Respuesta

Respuesta
1

Solamente para no obviar detalles, al final de los 2 primeros ejemplos pusiste .pdf, ¿se tiene que poner en todos los casos o en cuáles?

Y para realizar la concatenación, las columnas A y B están ordenadas o puedo ordenarlas, ¿primero la A y luego la B?

Me faltó comentarte, la concatenación la realizaría con una macro, ¿estás de acuerdo?

Hola.

Con respeto a los .pdf has caso omiso, fue un error de digitación.

Las columnas A y B están ordenadas, no importa si se realiza con una macro o con la creación de una fucion "concatenarSi"

Muchas gracias

Te anexo la macro para concatenar

Sub Macro1()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    '
    With h1.Sort
        .SortFields.Clear
        .SortFields.Add Key:=h1.Range("A1:A" & u)
        .SortFields.Add Key:=h1.Range("B1:B" & u)
        .SetRange h1.Range("A1:B" & u): .Header = xlGuess: .Apply
    End With
    '
    h1.Columns("C").ClearContents
    ini = 1
    fin = 1
    anta = h1.Cells(ini, "A")
    j = 1
    '
    For i = 1 To u + 1
        If anta <> h1.Cells(i, "A") Then
            cad = Mid(cad, 1, Len(cad) - 1)
            If i > u Then f = i - 1 Else f = i
            h1.Range(h1.Cells(j, "C"), h1.Cells(f, "C")) = cad
            cad = ""
            j = i
            antb = ""
        End If
        If antb <> h1.Cells(i, "B") Then
            cad = cad & h1.Cells(i, "B") & "_"
        End If
        anta = h1.Cells(i, "A")
        antb = h1.Cells(i, "B")
    Next
    '
    MsgBox "Concatenar Terminado", vbInformation
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: Macro1
  9. Aceptar.
  10. Para ejecutarla dale click a la imagen.

Saludos. Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas