Excel: transformando uma planilha indexada com muitas colunas em duas colunas

0

Eu tenho uma folha de excel com linhas como esta:

Fruit     | Apple  | Banana | Grape | Peach
Vegetable | Cabbage| Lettuce| Carrot|

e gostaria de uma saída de duas colunas duplicando o índice (primeira coluna):

Fruit     | Apple
Fruit     | Banana
Fruit     | Grape
Fruit     | Peach
Vegetable | Cabbage
Vegetable | Lettuce
Vegetable | Carrot

A simplicidade de uso é mais importante que a eficiência, pois os dados são pequenos e os usuários são inexperientes. Obrigado

pywiz13
fonte
Existe um programa que está gerando saída no formato mencionado acima? Se o conjunto de dados for pequeno, você tentou copiar a função colar e transpor no Excel?
pun

Respostas:

2

Se tivermos isso na Plan1 :

insira a descrição da imagem aqui

e execute esta macro curta:

Sub ReOrganize()
    Dim sh1 As Worksheet, sh2 As Worksheet
    Set sh1 = Sheets("Sheet1")
    Set sh2 = Sheets("Sheet2")
    Dim N As Long, M As Long, i As Long, j As Long, K As Long
    Dim t1 As String, t2 As String
    N = sh1.Cells(Rows.Count, "A").End(xlUp).Row
    K = 1

    For i = 1 To N
        t1 = sh1.Cells(i, 1).Value
        M = sh1.Cells(i, Columns.Count).End(xlToLeft).Column
        For j = 2 To M
            sh2.Cells(K, 1).Value = t1
            sh2.Cells(K, 2).Value = sh1.Cells(i, j)
            K = K + 1
        Next j
    Next i
End Sub

Veremos isso na Planilha2 :

insira a descrição da imagem aqui

Aluno de Gary
fonte