Como combinar valores de várias linhas em uma única linha com separador de vírgula

Como combinar valores de várias linhas em uma única linha com separador de vírgula

Eu tenho um arquivo Excel que lista SKUs de produtos em uma coluna e URLs de imagens de produtos em outra coluna. Meu problema é que o arquivo possui várias linhas para o mesmo produto...

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

...quando o CMS que uso na minha loja só consegue ler importações como esta:

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

Eu faria isso manualmente, mas existem centenas de produtos, cada um com vários links de imagens. Basicamente, preciso ter apenas um SKU001 (SKU002, SKU003, etc.) e mesclar suas células correspondentes da coluna B em uma célula com todos os valores separados por vírgula. Há alguma maneira de fazer isso?

Responder1

Digamos que temos dados emFolha1. Os SKUs estão na colunaAeBpode conter quaisquer dados. Os SKUs são classificados:

insira a descrição da imagem aqui

A macro a seguir produzirá dados reorganizados emPlanilha2:

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

insira a descrição da imagem aqui

Responder2

Acho que não tenho uma solução macro

cru

Quais filtros usar filtrado

em C2 digite =SE(A2=A1,C1&","&B2,B2)

Então em D2 digite =CONT.SE(C3,B3)

E preencha uma linha abaixo da sua tabela

O C col concatena com a string acima se for o mesmo produto, ou inicia uma nova cadeia se for um novo produto

A coluna D encontra o final de uma cadeia (verificando se a linha abaixo é uma nova cadeia)

Por favor, tente isso e me diga se funciona :)

informação relacionada