Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Transformieren von mehrern Spalten als Zeile
#1
Hallo zusammen,

ich brauche bitte mal wieder Unterstützung.

Ich habe eine Datei die Materialgruppen beinhaltet und dazu passende Werte. Die Materialgruppen stehen in den Zeilen und die Werte in den Spalten, das möchte ich gerne aber genau andersherum, dabei soll neben den Werten dann die MatGr stehen

Original

Matgr.     Wert1    Wert 2   Wert 3
Test           2           3          10
Test2         3           5           9

So soll es aussehen:

2   Test
3   Test
10  Test
3    Test2
5    Test2
9    Test

Eine Beispieldatei habe ich angefügt

Mit einfachem transponieren bekomme ich das nicht hin, gibt es dazu ggfs. eine Formel oder VBA Code Schnipsel? Danke für Anregungen und Tipps


Angehängte Dateien
.xlsx   Beispiel Transformieren.xlsx (Größe: 11,59 KB / Downloads: 2)
Antworten Top
#2
Hallo

Google-Suche.
Grüsse
Detlef

Bitte keine PN!
Seit Nikolaus 2012 mit Excel 2010. Seit Ostern 2015 mit Office 365
Antworten Top
#3
Hallo,

z.B. per Makro so:

Code:
Option Explicit

Public Sub Transponieren()
Dim wsQ As Worksheet, wsZ As Worksheet
Dim loZeile As Long, loSpalte As Long
Dim loZeileZiel As Long, i As Long

Set wsQ = Worksheets("Original")
Set wsZ = Worksheets("so sollte es aussehen")

loZeile = wsQ.Cells(wsQ.Rows.Count, 1).End(xlUp).Row
loZeileZiel = wsZ.Cells(wsZ.Rows.Count, 2).End(xlUp).Offset(1).Row

Application.ScreenUpdating = False

For i = 2 To loZeile
   loSpalte = wsQ.Cells(i, wsQ.Columns.Count).End(xlToLeft).Column
   wsQ.Cells(i, 1).Copy wsZ.Cells(loZeileZiel, 2).Resize(loSpalte - 1)
   wsQ.Range(wsQ.Cells(i, 2), wsQ.Cells(i, loSpalte)).Copy
   wsZ.Cells(loZeileZiel, 1).PasteSpecial Paste:=xlPasteAll, Transpose:=True
   loZeileZiel = wsZ.Cells(wsZ.Rows.Count, 2).End(xlUp).Offset(1).Row
Next i

Application.CutCopyMode = False

Set wsQ = Nothing: Set wsZ = Nothing
End Sub


Gruß Werner
Antworten Top
#4
Klappt. Vielen Dank an Werner für die super schnelle Lösung.

Mit VBA werde ich mich wohl mal auseinandersetzen müssen   :21:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste