Concatenação do Excel de uma coluna com base em valores em outro

0

Semelhante a isto: Excel - valores de pivô em uma célula (como valor separado por vírgulas)

Só que pode ser uma solução VBA e não tenho duplicatas na coluna A. Em vez disso, há linhas em branco abaixo de cada valor:

Name1|Fact1
------|Fact2
------|Fact3
------|Fact4
Name2|Fact1
------|Fact2
Name3|Fact1

Como na pergunta que cito, gostaria de alcançar:

Name1|Fact1, Fact2, Fact3, Fact4
Name2|Fact1, Fact2
Name3|Fact1

O número de fatos para cada nome não é uniforme, então uma fórmula simples arrastada para baixo não funcionaria.

Todos os valores são strings.

Eu preferiria usar uma macro para resolver isso, em vez da solução dada na pergunta que cito.

    
por OfficeLackey 06.06.2014 / 15:37

2 respostas

0

Você afirma que "O número de fatos para cada nome não é uniforme, então uma fórmula simples arrastada para baixo não funcionaria."

No entanto, o que você pode fazer para inserir uma fórmula em todas as células em branco é esta:

  1. Na célula A2, insira a fórmula = A1
  2. Copie a fórmula na célula A2
  3. Selecione o intervalo inteiro nas células A1: B7.
  4. Pressione CTRL + G.
  5. Escolha "especial".
  6. Escolha "espaços em branco"; "OK".
  7. Pressione CTRL + V para colar as fórmulas nas células em branco selecionadas.
  8. Agora você pode copiar e colar valores especiais para remover as fórmulas.

Você pode prosseguir com o método mostrado no link acima.

    
por 06.06.2014 / 17:53
1

Isso deve ser feito

Sub test()
Dim s As String
Dim i As Integer
For i = 1 To 100
    start:
    If Cells(i, 1) <> "" And Cells(i + 1, 1) = "" And Cells(i + 1, 2) <> "" Then
        s = Cells(i, 2).Value & "," & Cells(i + 1, 2).Value
        Cells(i, 2) = s
        Cells(i + 1, 1).EntireRow.Delete
        GoTo start
    End If

Next

End Sub
    
por 06.06.2014 / 16:12