Compartir a través de

necesito concatenar muchas celdas separadas por una coma

Anónimas
2013-01-30T11:10:38+00:00

tengo una columna con una serie de número que necesitaria unir en un texto separado por comas (son muchos) y por eso no me vale CONCATENAR, con esto genero y fichero para poder importarlo en otra apliación. Muchas gracias

Microsoft 365 y Office | Excel | Para la casa | Windows

Pregunta bloqueada. Esta pregunta se migró desde la Comunidad de Soporte técnico de Microsoft. Puede votar si es útil, pero no puede agregar comentarios o respuestas ni seguir la pregunta.

0 comentarios No hay comentarios
Respuesta aceptada por el autor de la pregunta
  1. Anónimas
    2013-01-31T14:49:52+00:00

    otra solución sería generar una columna con la formula  a2 & "," 

    después copias y pegas valores a otro libro, lo guardas como texto y ya lo tienes listo para importar.

    80+ personas han encontrado útil esta respuesta.
    0 comentarios No hay comentarios

36 respuestas adicionales

Ordenar por: Muy útil
  1. Héctor Miguel 71,595 Puntos de reputación
    2013-01-31T18:28:22+00:00

    opcion "a mano":

    1. introduce en una celda una formula con la referencia al rango (p.e.) [B1] =a1:a320
    2. pulsa: {F2}{F9} y ANTES de pusar enter...
    3. edita eliminando el signo '=' y las llaves { } al inicio y al final
    4. pulsa {enter}
    5. selecciona dos celdas (p.e.) [B1:B2]
    6. utiliza buscar=>reemplazar y sustituye los caracteres "separadores" de fila por la coma

    opcion "por macro" (lo mismo pero con un procedimiento vba):

    copia/pega el siguiente procedimiento en un modulo de codigo estandar y lo ejecutas (te llevara de la mano):

    Sub Concatena_rango()

      Dim sF As String, sC As String, sN As String, Origen As Range, Destino As Range

      On Error Resume Next

      sF = Application.International(xlRowSeparator)

      Set Origen = Application.InputBox("Selecciona el rango a concatenar", "Paso 1 de 3", "", , , , , 8)

      If Origen Is Nothing Then MsgBox "Operacion cancelada por el usuario !!!": GoTo Termina

      sN = InputBox("indica el separador de cadenas", "Paso 2 de 3", ",")

      If sN = "" Then MsgBox "Operacion cancelada por el usuario !!!": GoTo Termina

      Set Destino = Application.InputBox("Selecciona la celda donde concatenar", "Paso 3 de 3", ActiveCell.Address, , , , , 8)(1)

      If Destino Is Nothing Then MsgBox "Operacion cancelada por el usuario !!!": GoTo Termina

      Application.ScreenUpdating = False

      Destino.Select

      With ActiveCell

        .Formula = "=" & Origen.Address: SendKeys "{f2}{f9}^{end}{bs}^{home}{del 2}~": DoEvents

        .Replace CStr(sF), CStr(sN), xlPart

      End With

    Termina:

      Set Origen = Nothing: Set Destino = Nothing

    End Sub

    saludos,

    hector.

    50+ personas han encontrado útil esta respuesta.
    0 comentarios No hay comentarios
  2. Héctor Miguel 71,595 Puntos de reputación
    2015-02-19T02:27:22+00:00

    es para prevenir/evitar/corregir si el usuario selecciona mas de una celda al definir la variable :D

    saludos,

    hector.

    1 persona ha encontrado útil esta respuesta.
    0 comentarios No hay comentarios
  3. Anónimas
    2013-01-30T16:39:39+00:00

    una solucion sería copiar esa columna a otro libro (columna A), después guardar como txt y a continuación, con un editor hexadecimal, sustituir los caracteres 0D0A por el caracter coma.

    1 persona ha encontrado útil esta respuesta.
    0 comentarios No hay comentarios
  4. Héctor Miguel 71,595 Puntos de reputación
    2013-01-30T19:31:42+00:00

    cuantas celdas son "muchas" celdas ? (menciona el rango)

    cual seria el largo total (estimado en caracteres) de esa "unica" linea resultante ?

    (o el largo aproximado en caracteres de esas celdas ?)

    saludos,

    hector.

    0 comentarios No hay comentarios