Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Transponieren von Zellen

Forumthread: Transponieren von Zellen

Transponieren von Zellen
11.06.2025 17:29:18
itk2000
Ein freundliches Hallo in die Runde,

ich stehe aktuell vor einem Problem, bei dem ich mit meinem Excelwissen nicht weiter weiß und ich hoffe hier Hilfe zu finden.
ich habe sehr große Excelisten, bei denen ich Inhalte transponieren müsste.
Der Aufbau sieht wie folgt aus:

Materialnummer Werk Materialart TextID Zeile Text
4711 DU RES BST 1 Text 1
4711 DU RES BST 2 Text 2
4711 DU RES BST 3 Text 3
4711 DU RES BST 4 Text 4
4712 DU RES BST 1 Text 1
4712 DU RES BST 2 Text 2
4713 DU RES BST 1 Text 1
4713 DU RES BST 2 Text 2
4713 DU RES BST 3 Text 3

Mein Ziel ist es nun die Texte pro Materialnummer in eine Zeile zu transponieren

4711 DU RES BST 1 Text 1 Text 2 Text 3 Text 4
4712 DU RES BST 1 Text 1 Text 2
4713 DU RES BST 1 Text 1 Text 2 Text 3

Die Zeilenanzahl pro Materialnummer ist immer unterschiedlich. Einzig der Zähler oder (besser) der Beginn einer neuen Materialnummer
wäre nutzbar als Zähler.

Meine Frage nun. Wie komme ich mit einfachen Mitteln zu meinem Ziel?

Ich danke für jeden Beitrag und Hinweis und lasse liebe Grüße da.
Anzeige

39
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Transponieren von Zellen
11.06.2025 17:42:27
cysu11
Hi,

kommt für Dich VBA in Frage?

LG, Alexandra
AW: Transponieren von Zellen
11.06.2025 17:48:53
SF
Hola,
das bekommst du mit Mtrans(Filter(.....) hin.
Vorher legst du dir mit Eindeutig() eine Liste der Materialnummern an.
Gruß,
steve1da
AW: Transponieren von Zellen
11.06.2025 17:49:22
Eifeljoi 5
Hallo
Als Tipp:
In deiner Excelversion ein Kinderspiel mit PQ.
Anzeige
AW: Transponieren von Zellen
11.06.2025 18:02:34
UweD
Hallo

so?

Arbeitsblatt mit dem Namen 'Tabelle2'
 ABCDEFGH
14711DURESBSTText 1Text 2Text 3Text 4
24712DURESBSTText 1Text 2  
34713DURESBSTText 1Text 2Text 3 

ZelleFormel
A1=EINDEUTIG(FILTER(Tabelle1!A:D;(Tabelle1!A:A>"")*(ZEILE(Tabelle1!A:A)>1)))
E1=WENN(A1>"";ZUZEILE(FILTER(Tabelle1!F:F;Tabelle1!A:A=A1));"")



A1 ist selbsterweiternd
E1 nach unten kopieren


LG UweD


Anzeige
AW: Transponieren von Zellen
11.06.2025 18:50:31
Piet
Hallo

hier noch mal meine Beispiledatei, diesmal mit funktionierendem Makro.
Viel Spass beim testen. Bin gespannt auf das Ergebnis!
https://www.herber.de/bbs/user/177724.xlsm

mfg Piet
Anzeige
AW: Transponieren von Zellen
11.06.2025 19:23:11
Piet
Hallo

ich habe das Makro auf deine deine Beispieldatei angepasst. Die Formellösung sah auch gut aus!
Aber es geht ja darum, das alle Daten in einer Zeile stehen. Bin gespannt wie dein Text ausfällt.
https://www.herber.de/bbs/user/177726.xlsm

mfg Piet
Anzeige
AW: Transponieren von Zellen
11.06.2025 19:56:36
BoskoBiati
Hallo zusammen,

hier mal noch mit einer Formel, bei der ich leider nicht in der Lage bin, die auftretenden #NV zu eliminieren. Vielleicht hat jemand noch eine Idee, wie man diese Formel verbessern kann:

=LET(xa;EINDEUTIG(Tabelle1!A:.D);xb;TEXTVERKETTEN("@";0;MAP(INDEX(xa;;1);LAMBDA(a;TEXTVERKETTEN("#";0;FILTER(Tabelle1!F:.F;Tabelle1!A:.A=a)))));HSTAPELN(xa;TEXTTEILEN(xb;"#";"@";1)))



Über Rückmeldungen und Verbesserungen würde ich mich sehr freuen.

Gruß

Edgar
Anzeige
AW: Transponieren von Zellen
13.06.2025 14:46:55
daniel
#NV eleminieren geht mit WENNFEHLER nach dem Textteilen:

=LET(
xa;EINDEUTIG(Tabelle1!A:.D);
xb;TEXTVERKETTEN("@";0;MAP(INDEX(xa;;1);
LAMBDA(a;TEXTVERKETTEN("#";0;FILTER(Tabelle1!F:.F;Tabelle1!A:.A=a)))));HSTAPELN(xa;WENNFEHLER(TEXTTEILEN(xb;"#";"@";1);"")))

Gruß Daniel
Anzeige
AW: Transponieren von Zellen
11.06.2025 20:00:28
daniel
Hi
einfach wären noch folgendes.
hier wird die vorhandene Tabelle mit ein paar Schritten direkt umgebaut (dh die originaldaten bleiben nicht erhalten, wenn man sie nicht sichert)
das funktioniert auch mit älteren Excelversionen und eignet sich für große Datenmengen:

1. sicherstellen, dass die Liste nach Mat-Nr und Zeile sortiert ist
2. in Zelle G1 folgende Formel einfügen und runter kopieren:
=F1&Wenn(A1=A2;"|"&F2;"")
3. Spalte G kopieren und an gleicher stelle als Wert einfügen
4. mit der ganzen Tabelle die Menüfunktion DATEN - DATENTOOLS - DUPLIKATE ENFERNEN ausführen, mit Spalte A als Kriterium
5. mit der Spalte G die Menüfunktion DATEN - DATENTOOLS - TEXT IN SPALTEN ausführen, getrennt mit der Pipe "|" als Trennzeichen (oder was immer man auch in der Formel verwendet hat
6. Spalte E und F löschen.

das ganze auch als Makro:
(der Recorder hilft beim Erstellen, insbesondere für das TEXT IN SPALTEN)
Sub Makro2()

With Cells(1, 1).CurrentRegion
.Sort Key1:=.Cells(1, 1), order1:=xlAscending, key2:=.Cells(1, 5), order2:=xlAscending, Header:=xlYes
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=RC6&if(R[1]C1=RC1,""|""&R[1]C,"""")"
.Formula = .Value
End With
End With
With Cells(1, 1).CurrentRegion
.RemoveDuplicates 1, xlYes
.Columns(.Columns.Count).TextToColumns _
Destination:=.Cells(1, .Columns.Count), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=False, Comma:=False, Space:=False, _
Other:=True, OtherChar:="|"
.Columns(5).Resize(, 2).Delete shift:=xlToLeft
End With
End Sub


wenn man die Daten an anderer stelle benötigt, dann würde ich ein Makro vorschlagen, dass die Formeln verwendet:
her wird die Liste in ab H1 erstellt.
wer die Formeln behalten will, lässt das .Formula = .Value weg:

Sub Makro1()

Dim x As Long
With Range("H1")
x = .Column
.CurrentRegion.ClearContents
.Formula2R1C1 = "=UNIQUE(C1.:.C4)"
With .SpillingToRange
With .Columns(1).Offset(0, .Columns.Count)
.Formula2R1C1 = "=TOROW(FILTER(C6.:.C6,C1.:.C1=RC" & x & "))"
End With
End With
With .CurrentRegion
.Formula = .Value
End With
End With
End Sub


beide Codes passen sich automatisch an unterschiedliche Tabellenlängen an, ändern sich spalten muss ggf der Code angepasst werden.

Gruß Daniel
Anzeige
AW: Im Anhang ist...
11.06.2025 18:31:54
itk2000
Hallo Case,

wenn ich meine Daten in diese Liste einfüge und "Enter" drücke" kopiert er sie, aber transponiert nicht
Du musst deine...
11.06.2025 18:52:25
Case
Moin, :-)

... Tabelle (eine Zelle der Daten ist markiert) mit STRG+T in eine sogenannte "intelligente Tabelle" umwandeln (Haken bei Tabelle hat Überschrift setzen - wenn nicht schon vom System erkannt). ;-)

ODER - du gehst auf "Daten - Daten abrufen und transformieren - Aus Tabelle/Bereich". ;-)

Dann kommt das gleiche Fenster. ;-)

Nun bist du im Power-Query-Editor. Dort kannst du bei "Start - Erweiterter Editor" das was da steht, mit folgendem M-Code überschreiben und OK klicken:
let

Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
ZAT = Table.TransformColumnTypes(Quelle, {{"Zeile", type text}}),
SpalteU = Table.RenameColumns(Table.Pivot(ZAT, List.Distinct(ZAT[Zeile]), "Zeile", "Text"), List.Transform(List.Distinct(ZAT[Zeile]), each {_, "Text" & _}))
in
SpalteU


Achte vorher darauf, ob deine Tabelle auch "Tabelle1" heisst, sonst anpassen. ;-)

Dann bei "Start - Schließen & Laden - Schließen & laden in..." dein Ziel auswählen.

Wenn du das nicht hinbekommst, lade eine Beispieldatei hoch, dann bau ich dir das ein., ;-)

Servus
Case
Anzeige
AW: Transponieren von Zellen
11.06.2025 18:14:35
itk2000
dann verliert die Zelle A1 aber ihren Wert, sprich die Materialnummer und wird "0"
AW: Transponieren von Zellen
11.06.2025 18:28:51
UweD
Verstehe ich nicht.

Wie du siehst klapp das bei mir tadellos

Deine Daten befinden sich auf Blatt Tabelle1
Das Ergebnis mit den Formeln auf Blatt Tabelle2
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEF
1MaterialnummerWerkMaterialartTextIDZeileText
24711DURESBST1Text 1
34711DURESBST2Text 2
44711DURESBST3Text 3
54711DURESBST4Text 4
64712DURESBST1Text 1
74712DURESBST2Text 2
84713DURESBST1Text 1
94713DURESBST2Text 2
104713DURESBST3Text 3


Arbeitsblatt mit dem Namen 'Tabelle2'
 ABCDEFGH
1MaterialnummerWerkMaterialartTextIDText   
24711DURESBSTText 1Text 2Text 3Text 4
34712DURESBSTText 1Text 2  
44713DURESBSTText 1Text 2Text 3 

ZelleFormel
A1=EINDEUTIG(FILTER(Tabelle1!A:D;Tabelle1!A:A>""))
E1=ZUZEILE(FILTER(Tabelle1!F:F;Tabelle1!A:A=A1))

Anzeige
AW: Transponieren von Zellen
11.06.2025 18:38:34
itk2000
@UweD

jetzt transponiert er bei mir auch, allerdings erhalte ich die gleiche Anzahl Zeilen der Materialnummern, aber...hinten dran die Texte :-)
Zellbezug ganze Spalte, aber trotzdem nur Daten.
11.06.2025 20:27:27
daniel
HI Uwe
kleiner Tipp am Rande:
mittlerweile kann man Leerzellen am Anfang und Ende auch direkt über den Zellbezug ausschließen (Punkt vor bzw nach dem Spaltenbuchstaben)
ein: =A.:.D liefert nur die Zellen mit Daten aus diesem Bereich, Leerzellen am Anfang und Ende werden so automatisch ausgeschlossen (Leerzellen zwischendrin bleiben erhalten)
das erspart den Filter: =Filter(A:D;A:A>"") und reduziert vermutlich so den Rechenaufwand.
kleine, aber feine Verbesserung in Excel.
Gruß Daniel
Anzeige
AW: Zellbezug ganze Spalte, aber trotzdem nur Daten.
12.06.2025 11:42:52
UweD
HAllo Daniel

Das klappt bei mir nicht. Excel nimmt die Formel nicht an


LG UweD
AW: Zellbezug ganze Spalte, aber trotzdem nur Daten.
12.06.2025 12:27:44
daniel
welche Formel?
du solltest deine Formel schon zeigen, damit wir schauen können, ob du vielleicht irgendwas falsch gemacht hast.
Das Feature ist auch relativ neu, vielleicht "hängst" du noch auf einer alten Version?
Gruß Daniel
Anzeige
AW: Zellbezug ganze Spalte, aber trotzdem nur Daten.
12.06.2025 12:35:35
UweD
Das was du mir vorgeschlagen hattest

"HI Uwe
kleiner Tipp am Rande:
mittlerweile kann man Leerzellen am Anfang und Ende auch direkt über den Zellbezug ausschließen (Punkt vor bzw nach dem Spaltenbuchstaben)
ein: =A.:.D liefert nur die Zellen mit Daten aus diesem Bereich, Leerzellen am Anfang und Ende werden so automatisch ausgeschlossen (Leerzellen zwischendrin bleiben erhalten)
das erspart den Filter: =Filter(A:D;A:A>"") und reduziert vermutlich so den Rechenaufwand.
kleine, aber feine Verbesserung in Excel. "



Anstelle:
=EINDEUTIG(FILTER(Tabelle1!A:D;Tabelle1!A:A>""))

=EINDEUTIG(Tabelle1!A.:.D)

Formel wird nicht angenommen

LG UweD
Anzeige
AW: Zellbezug ganze Spalte, aber trotzdem nur Daten.
12.06.2025 13:58:54
daniel
bei mir gehts
Userbild

und das mit

Microsoft 365 Apps for Enterprise
Microsoft® Excel® für Microsoft 365 MSO (Version 2503 Build 16.0.18623.20266) 64 Bit

Gruß Daniel
Anzeige
AW: Transponieren von Zellen
11.06.2025 18:41:51
UweD
Lade mal eine Musterdatei hoch
AW: Transponieren von Zellen
11.06.2025 18:53:15
UweD
Hallo

Wenn du in der Eindeutig- Formel die Spalte E mit auswählst, ist klar, dass dann die gleiche Anzahl an Zeilen kommt.
Ich hatte ja angegeben A:D

=EINDEUTIG(FILTER(Tabelle1!A:D;Tabelle1!A:A>""))

Die Zeile brauchst du doch gar nicht in deiner Auswertung.

Arbeitsblatt mit dem Namen 'Tabelle2'
 ABCDEFGHIJKL
1Material-Nr.WerksMaterialartText ID  Text     
2100000082242J8XERSBEST  Bolzen D=68/58X125Werkstoff:C45 nachZ.-Nr.855.0071-0151Teil 7,Index"C"0Kennzeichnung m.Lg.-Waren-Nr.93 3421154
3100000082342J8XERSBEST  Bolzen D=56/48X185Werkstoff:C45 nachZ.-Nr.855.0071-0151Teil 6,Index"C"  
4100000082442J8XERSBEST  Bolzen D=15X45Werkstoff:C45 nachZ.-Nr.855.0071-0152 (1)Teil 3,Index"C"0Kennzeichnung m.Lg.-Waren-Nr.93 3421156
5100000082542J8XERSBEST  Buchse D=58/50X40Werkstoff:GZ-CUSN12 nachZ.-Nr.855.0071-0152Teil 4 ,Index"C"0Kennzeichnung m.Lg.-Waren-Nr.93 3421158
6100000082642J8XERSBEST  Beilagenpaket 200X140Werkstoff:RST37-2 nachZ.-Nr.855.0071-0152 (1)Teil 14,Index"C"0Kennzeichnung m.Lg.-Waren-Nr.93 3421159
7100000082742J8XERSBEST  Distanzstueck 240X200X40Werkstoff:RST37-2 nachZ.-Nr.855.0071-0152 (1)Teil 1 ,Index"C"0Kennzeichnung m.Lg.-Waren-Nr.93 3421160

ZelleFormel
A1=EINDEUTIG((FILTER(Tabelle1!A:D;Tabelle1!A:A>"")))
G1=ZUZEILE(FILTER(Tabelle1!F:F;Tabelle1!A:A=A1))

LG UweD
Anzeige
AW: Transponieren von Zellen
11.06.2025 18:57:53
itk2000
Ich danke Euch vielmals für Eure Hilfe. Ich bin begeistert von der Schnelligkeit und dem Engagement!
Ich werde mir morgen früh alle Daten weiter ansehen und mich melden.
Aber jetzt schon mal 10000 Dank. Ich bin sicher, dass die Vorschläge mein Problem lösen werden!!!

Liebe Grüße
AW: Transponieren von Zellen
11.06.2025 18:56:02
UweD
siehe oben
Bezogen auf diese...
11.06.2025 19:01:53
Case
Moin :-)

... Beispieldatei von dir dann so: ;-)
https://www.herber.de/bbs/user/177725.xlsx

Es sind zwei Beispiele drin. Einmal mit der leeren "5" und einmal ohne. ;-)

Servus
Case
Anzeige
AW: Transponieren von Zellen
11.06.2025 18:17:55
Piet
Hallo

zuerst mal ein freundliches Hallo zurück. Da waren die Kollegen seeehr schnell!! 17:17
Willkommen im Neuland bei VBA. - Button drücken, Fertig! Noch Fragen??
Man muss nichts von Motortechnik verstehen, um Auto fahren zu können. Nur starten!

Kopiere bitte deine Daten einmal in diese Beispieldatei und schau dir das Ergebnis an.
Ob du den Code anschauen willst, ihn verstehtst, spielt keine Rolle. Er funktioniert.
Ich war überrascht wie viele AW schon vorlagen, aber die Arbeit ist zu schade für die Tonne!
https://www.herber.de/bbs/user/177721.xlsm

mfg Piet
Anzeige
AW: Transponieren von Zellen
11.06.2025 18:23:57
itk2000
Danke Piet!
Beim Ausführen sagt mit Excel, dass er Test.xlsm nicht finden kann
AW: Transponieren von Zellen
11.06.2025 18:42:20
Piet
Hallo

dummer Fehler beim speichern der -Test Datei- als Einzelblatt!!
Klicke bitte auf den Button und rufe mit rechter Maus das Kontextmenü "Makro zuweisen" auf.
Dann klicke im Dialog das Makro an, und bestätige es mit "Ok". -> Danach sollte es klappen!

mfg Piet
Anzeige
AW: Transponieren von Zellen
11.06.2025 18:00:26
daniel
"In deiner Excelversion ein Kinderspiel mit PQ."

naja, "Kinderspiel" ist leicht gesagt,
Wahrscheinlich wirst du dich schwer tun, uns zu beschreiben was man in PQ tun muss, um das zu erreichen.
für mich wirkt das "ist ein Kinderspiel" ohne zu sagen wie es geht immer höchst arrogant.

irgendwie scheint das eine Besonderheit der PQ-Nutzer zu sein. Dieses Verhalten zeigten schon die ersten Befürworter für die Verwendung von PQ. Die haben auch immer geschrieben "ich mach das mit ein paar Mausklicks", aber um dann aus ihnen herauszubekommen, was man da klicken muss, war nicht so einfach.
Anzeige
AW: Transponieren von Zellen
11.06.2025 18:11:36
Eifeljoi 5
Hallo

Hier der M-Code zur gute Nachtversion
let in

Table.Group(Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content], {"Spalte1"}, {{"Anzahl", each Text.Combine(List.RemoveNulls(
[Spalte2]), ", "), type text}})
AW: Transponieren von Zellen
11.06.2025 18:14:56
daniel
arroganz²
AW: Transponieren von Zellen
12.06.2025 15:50:14
Eifeljoi 5
Lach ,
arroganz² als Platzhirsch zu sein
Anzeige
AW: Transponieren von Zellen
12.06.2025 15:53:26
Eifeljoi 5
Lach,

Lieber arroganz² als hier hier Platzhirsch zu sein
AW: Transponieren von Zellen
11.06.2025 18:00:40
itk2000
PQ und VBA sind absolutes Neuland für mich
AW: Transponieren von Zellen
11.06.2025 17:44:55
itk2000
Hallo Alexandra,

ich habe keinerlei VBA Erfahrung :(

LG
Anzeige
AW: Transponieren von Zellen
11.06.2025 17:45:45
cysu11
Heißt ja oder nein? ;)
AW: Transponieren von Zellen
11.06.2025 17:47:02
itk2000
dann nein :-)
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18