Ich habe einige Daten mit Produktpreisen im Verhältnis zum Zolltarifcode:
+==============+========+========+========+========+
| 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 |
+--------------+--------+--------+--------+--------+
Ich möchte eine Tabelle mit drei Spalten erhalten: Produktcode, Preis und Zolltarifnummer
+==============+=======+=============+
| 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 |
+--------------+-------+-------------+
Ich habe erfolglos versucht, dies mit einer benutzerdefinierten Einfügung zu erreichen.
Gibt es eine Möglichkeit, dies mit Calc zu tun?
Antwort1
In den Kommentaren des OP erwähnen Sie die Verwendung eines Skripts. Dieses VBa erledigt dies und speichert die Ergebnisse in einem anderen Blatt.
Auch wenn Ihr Computer VBa nicht unterstützt, kann Ihnen das Skript eine Idee geben, sodass Sie es in Ihre bevorzugte Sprache portieren können.
Denken Sie daran, dass die Rückgängig-Funktion mit VBa normalerweise nicht funktioniert. Speichern Sie daher zunächst eine Kopie der Datei als Sicherungskopie!!
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 (Blatt 1)
Nach dem Ausführen von VBa sieht sheet2 wie folgt aus: