Tengo algunos datos con los precios de los productos en relación con el código arancelario:
+==============+========+========+========+========+
| 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 |
+--------------+--------+--------+--------+--------+
Quiero obtener una tabla con tres columnas: código de producto, precio y código arancelario.
+==============+=======+=============+
| 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 |
+--------------+-------+-------------+
Intenté lograr esto con una pasta personalizada sin éxito.
¿Hay alguna forma de hacer esto con Calc?
Respuesta1
En los comentarios del OP, mencionas el uso de un script. Este VBa lo hace, guardando los resultados en otra hoja.
Incluso si su máquina no es compatible con VBa, el script puede darle una idea para que pueda transferirlo a su idioma preferido.
Recuerde, con VBa, deshacer generalmente no funciona, así que primero guarde una copia del archivo como copia de seguridad.
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 (Hoja1)
Después de ejecutar VBa, la hoja 2 parece