Unir celdas excel y separarlas con ","

Cómo unir multitud de celdas masivamente con un parámetro.: unir A=123 B=456 C=789 etc separando por ",". 123,456,789,.....

Salgo del paso usando =A&","&B&","&C.... Pero tengo que hacerlo una a una, necesito arrastrar y unir una columna entera y separar celda a celda por ",". 

Muchas gracias!

2 Respuestas

Respuesta
1

Creo que ha pasado mucho tiempo desde que hiciste la pregunta.

Envío una función donde indico la respuesta.

Function UnirCeldas(Rango As Range)
For Each celda In Rango
    concat = concat & celda & ","
Next
UnirCeldas = Left(concat, Len(concat) - 1)
End Function
Respuesta
1

Si pones la fórmula =A1&","&B1&","&C1 ..., y luego arrastras la fórmula hacia abajo hasta el final de los datos, no es lo que necesitas?

O tal vez quieres ocupar una macro, prueba con la siguiente macro, te va a unir las celdas desde la primera fila hasta la última fila y desde la primer columna hasta la última columna con datos. El resultado te lo pone en la columna siguiente al final de tus datos.

Sub UnirColumnas()
'Por.Dante Amor
    uf = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    uc = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column
    For i = 1 To uf
        For j = 1 To uc
            cad = cad & "," & Cells(i, j)
        Next
        Cells(i, j) = "'" & Mid(cad, 2)
        cad = ""
    Next
End Sub

Sigue las Instrucciones para ejecutar la macro

  1. Abre tu archivo 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. Para ejecutarla presiona F5

Si no es lo que buscas explícame con ejemplos cómo tienes los datos en tu hoja y dime cómo quieres el resultado.


Bueno... quizá funcione pero soy incapaz. Macros me queda muy grande, no puedo ejecutarlo.

Te explico: tengo estas celdas y necesito unirlas con una separación entre celdas de ",".

COIDENNUMERO
10031
10049
10049
10049
10148
10160
10165
10276
10404
10405
10409
1710
3752
4299
9377
9505
9506
9897

Sigo intentándolo con la macro..

Gracias!

Tal vez, todavía no entiendo cómo tienes los datos y cómo quieres el resultado:

Por ejemplo dime si tienes esto:

          A                B           C

1    10031
2    10049
3    10049
4    10049
5    10148

Y quieres esto

          A                B                                                            C

1    10031          10031,10049,10049,10049,10148
2    10049
3    10049
4    10049
5    10148

Si no es así, puedes poner ejemplos de cómo tienes la información, trata de ser más gráfico, de cómo están los datos o pon una imagen.

Exactamente como tu dices. 

Si tus datos están en la columna "A" y empiezan en la fila 2, utiliza la siguiente macro, el resultado te lo pone en la celda "B2"

Sub UnirCeldas()
'Por.Dante Amor
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        cad = cad & Cells(i, "A") & ","
    Next
    cad = Mid(cad, 2)
    Range("B2") = "'" & Left(cad, Len(cad) - 1)
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas