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


0

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

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

... quando o CMS que eu uso na minha loja só pode 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 imagem. Basicamente, eu preciso ter apenas um SKU001 (SKU002, SKU003, etc.) e mesclar suas células de coluna B correspondentes em uma célula com todos os valores separados por uma vírgula. Há alguma maneira de fazer isso?

Respostas:


1

Digamos que temos dados em Folha1 . Os SKUs estão na coluna UMA e B pode conter quaisquer dados. Os SKUs são classificados:

enter image description here

A macro a seguir produzirá dados reorganizados em Folha2 :

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

enter image description here


Isso é exatamente quando eu estava procurando. Obrigado!
Etzer

@Etzer Obrigado pelo feedback
Gary's Student

2

Acho que tenho uma solução sem macro

raw

Quais filtros para filtered

no tipo C2 = IF (A2 = A1, C1 & amp; "," & amp; B2, B2)

Então, no tipo D2 = COUNTIF (C3, B3)

E preencha uma linha abaixo da sua mesa

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

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

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


caso eu não tenha clareza, use o autofiltro no col D e mostre apenas "1", então você pode copiá-lo para qualquer lugar ou exportar para csv etc.
Some_Guy

Eu acho que sua abordagem geral é muito boa se macro não for permitida (+1)
Gary's Student
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.