Macros para concatenar información de una tabla

¿Cómo están?

Quisiera consultarles si existe algún macro para hacer lo siguiente:

1. Necesitaría obtener los datos de esta tabla de forma unificada

2. Por ejemplo, necesitaría saber cada uno de los ids que posee el producto "mimo_TCQ4566" en una sola tabla de esta manera:

No estoy encontrando la manera de hacerlo, ya que la columna A posee números duplicados y la B también.

Como muestro en el ejemplo necesitaría también que la información de cada numero de id este separado por una coma y un espacio como muestro en esta imagen:

2 respuestas

Respuesta
4

Ejecuta la siguiente macro:

Sub Concatenar_Info()
  Dim a As Variant, b As Variant
  Dim dic As Object
  Dim i As Long
  '
  a = Range("A1", Range("B" & Rows.Count).End(3)).Value
  ReDim b(1 To UBound(a, 1), 1 To 2)
  Set dic = CreateObject("Scripting.Dictionary")
  dic.CompareMode = vbTextCompare
  '
  For i = 1 To UBound(a, 1)
    If Not dic.exists(a(i, 1)) Then
      dic(a(i, 1)) = a(i, 2)
    Else
      dic(a(i, 1)) = dic(a(i, 1)) & ", " & a(i, 2)
    End If
  Next
  '
  Range("D1"). Resize(dic. Count, 2).Value = Application. Transpose(Array(dic. Keys, dic. Items))
End Sub
Respuesta
2

Debes hacerlo mediante macros. De hecho te recomiendo pasarlo a una base de datos como MS Access y hacerlo alli puesto que Access te permitirá hacer consultas para agrupar los valores iguales. Si quieres te puedo crear una Base de datos con dos columnas que te genere una nueva tabla con los datos como dices que los quieres.

Hola Jordi, gracias por tu pronta respuesta, okey, me podrías brindar por favor la base de datos para probar si funciona?.

Saludos

Bien, aquí te adjunto la base de datos cuando lo abras te saldrá un formulario y solo debes borrar el ejemplo, introducir tus dos columnas y pulsar el botón de convertir. Automáticamente se te generará en la tabla de al lado las dos columnas que querías.

¿Hola Jordi como estas?, te hago una consulta más, ¿cuál es la manera correcta de introducir las 2 columnas de mi excel dentro de la base de datos? Nunca use access, probé copian y pegando pero me sale este error

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas