Konvertieren Sie eine zweidimensionale Tabelle in eine einzelne

Konvertieren Sie eine zweidimensionale Tabelle in eine einzelne

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)

Bildbeschreibung hier eingeben

Nach dem Ausführen von VBa sieht sheet2 wie folgt aus:

Bildbeschreibung hier eingeben

verwandte Informationen