Cómo combinar valores de varias filas en una sola fila con un separador de coma

Cómo combinar valores de varias filas en una sola fila con un separador de coma

Tengo un archivo de Excel que enumera los SKU de productos en una columna y las URL de imágenes de productos en otra columna. Mi problema es que el archivo tiene varias filas para el mismo producto...

http://i.imgur.com/mVn1EYa.jpg

...cuando el CMS que uso en mi tienda sólo puede leer importaciones como esta:

http://i.imgur.com/nQNCjci.jpg

Lo haría manualmente pero hay cientos de productos, cada uno con múltiples enlaces de imágenes. Básicamente, necesito tener solo un SKU001 (SKU002, SKU003, etc.) y fusionar las celdas de la columna B correspondientes en una celda con todos los valores separados por una coma. ¿Hay alguna manera de hacer esto?

Respuesta1

Digamos que tenemos datos enHoja1. Los SKU están en la columna.AyBpuede contener cualquier dato. Los SKU están ordenados:

ingrese la descripción de la imagen aquí

La siguiente macro producirá datos reorganizados enHoja2:

Sub ReOrganizer()
   Dim s1 As Worksheet, s2 As Worksheet
   Dim N As Long, i As Long, K As Long
   Dim v1 As String, v2 As String
   Set s1 = Sheets("Sheet1")
   Set s2 = Sheets("Sheet2")
   K = 1
   N = Cells(Rows.Count, "A").End(xlUp).Row
   v1 = s1.Cells(2, 1).Value
   v2 = s1.Cells(2, 2).Value

   For i = 3 To N
      vn1 = s1.Cells(i, 1).Value
      vn2 = s1.Cells(i, 2).Value
      If vn1 = v1 Then
         v2 = v2 & "," & vn2
      Else
         s2.Cells(K, 1) = v1
         s2.Cells(K, 2) = v2
         v1 = vn1
         v2 = vn2
         K = K + 1
      End If
   Next i

   s2.Cells(K, 1) = v1
   s2.Cells(K, 2) = v2

End Sub

ingrese la descripción de la imagen aquí

Respuesta2

Creo que tengo una solución sin macro

crudo

¿Qué filtros para filtrado

en C2 escriba =SI(A2=A1,C1&","&B2,B2)

Luego en D2 escriba =CONTAR.SI(C3,B3)

Y complete hasta una fila debajo de su tabla

La columna C se concatena con la cadena anterior si es el mismo producto, o inicia una nueva cadena si es un producto nuevo.

La columna D encuentra el final de una cadena (verificando si la fila de abajo es una cadena nueva)

Por favor prueba esto y dime si funciona :)

información relacionada