Converter tabela bidimensional para uma única

2

Eu tenho alguns dados com os preços dos produtos em relação ao código tarifário:

+==============+========+========+========+========+
| product code | code10 | code20 | code30 | code40 |
|==============+========+========+========+========|
| product1     | 12.3   | 12.4   | 12.5   | 12.6   |
+--------------+--------+--------+--------+--------+
| product2     | 13.3   | 13.4   | 13.5   | 13.6   |
+--------------+--------+--------+--------+--------+
| product3     | 14.3   | 14.4   | 14.5   | 14.6   |
+--------------+--------+--------+--------+--------+

Eu quero obter uma tabela com três colunas: código do produto, preço e código da tarifa

+==============+=======+=============+
| product code | price | tariff code |
|==============+=======+=============+
| product1     | 12.3  | code10      |
+--------------+-------+-------------+
| product1     | 12.4  | code20      |
+--------------+-------+-------------+
| product1     | 12.5  | code30      |
+--------------+-------+-------------+
| product1     | 12.6  | code40      |
+--------------+-------+-------------+
| product2     | 13.3  | code10      |
+--------------+-------+-------------+
| product2     | 13.4  | code20      |
+--------------+-------+-------------+
| ........     | ....  | ......      |
+--------------+-------+-------------+
| product3     | 14.6  | code40      |
+--------------+-------+-------------+

Tentei conseguir isso com uma pasta personalizada sem sucesso.
Existe alguma maneira de fazer isso com o Calc?

    
por Brewal 21.07.2014 / 11:11

1 resposta

2

Nos comentários do OP, você menciona o uso de um script. Este VBa faz isso, salvando os resultados em outra planilha.

Mesmo que sua máquina não suporte o VBa, o script pode lhe dar uma ideia para que você possa transferi-la para o idioma de sua preferência.

Lembre-se, com o VBa, desfazer normalmente não funciona, então salve uma cópia do arquivo primeiro como backup!

Sub DoSomeMagic()

Call CreateHeadings

Dim row As Integer
row = 2

Dim sheet2row As Integer
sheet2row = 2

Do While (Worksheets("Sheet1").Range("A" & row).Value <> "")


Dim col As Integer
col = 66

    Do While (Worksheets("Sheet1").Range(Chr(col) & row).Value <> "")

        Worksheets("Sheet2").Range("A" & sheet2row).Value = Worksheets("Sheet1").Range("A" & row).Value
        Worksheets("Sheet2").Range("B" & sheet2row).Value = Worksheets("Sheet1").Range(Chr(col) & row).Value
        Worksheets("Sheet2").Range("C" & sheet2row).Value = Worksheets("Sheet1").Range(Chr(col) & 1).Value
           col = col + 1
           sheet2row = sheet2row + 1
    Loop

    row = row + 1

Loop

End Sub

Sub CreateHeadings()

Worksheets("Sheet2").Range("A1").Value = "product code"
Worksheets("Sheet2").Range("A1").Font.Bold = True
Worksheets("Sheet2").Range("B1").Value = "price"
Worksheets("Sheet2").Range("B1").Font.Bold = True
Worksheets("Sheet2").Range("C1").Value = "tariff code"
Worksheets("Sheet2").Range("C1").Font.Bold = True

End Sub

Original (Folha1)

DepoisdeexecutaroVBa,osheet2separececom

    
por 21.07.2014 / 13:42