Clever-Excel-Forum

Normale Version: Mehrfaches Transponieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

vorab: ich wette, dieses Problem kam schon mehrfach auf, ich habe auch schon 2 Seiten mit "transponieren" hier durchgeschaut und habe leider nicht die passende Lösung gefunden.

Anbei unten die Excel-Datei mit start- und endformatierung:

Ich habe ca 300 Zeilen und  50 Spalten, in denen teilweise Daten stehen. Diese möchte ich jetzt alle untereinander haben, in einer Zeile. Hierbei ist nicht in jeder Zeile ein Inhalt vorhanden, also...

 -----------------------------------------------
A    12   13 14
B    15
C   
D   Micky Mausi Minni
------------------------------------------------
soll werden zu
--------------------------------------------------
12
13
14
15
Micky
Mausi
Minni
-------------------------------------------------------
Mit Transponieren würde es gehen, aber das müsste ich ja einzeln machen. Die formel =Sortieren, die mir im Internet vorgeschlagen wurde, ist bei mir leider ausgegraut... eine Kreuztabelle habe ich mir auch bereits angeschaut, aber ich glaube da hat es nicht funktioniert, weil bei mir nicht in jeder Zeile Inhalte stehen bzw. nicht jede Zeile auch gleich viele Inhalte hat.

Vielen Dank bereits im Voraus und noch einen schönen Tag wünsche ich, ihr seid wirklich sehr hilfsbereit!

Freundliche Grüße,
Robin
Moin,

ich verweise mal auf ein anderes Forum. Hier ist glaube ich genau dein Problem/Lösung.
Hallo Robin,

markiere den Bereich und starte dann folgendes Makro:

Code:
Sub BereichZuSpalte()
  Dim i As Long, j As Long, k As Long
  Dim rngZ As Range
  Dim varQ As Variant, varZ As Variant, varTemp As Variant
  varQ = Selection.Value
  ReDim varZ(1 To UBound(varQ, 1) * UBound(varQ, 2), 1 To 1)
  For i = 1 To UBound(varQ, 1)
    For j = 1 To UBound(varQ, 2)
      If Len(varQ(i, j)) Then
        k = k + 1
        varZ(k, 1) = varQ(i, j)
      End If
    Next j
  Next i
  On Error Resume Next
  Set rngZ = Application.InputBox(Prompt:="Bitte die erste Zelle des gewünschten Zielbereichs auswählen!", Type:=8)
  On Error GoTo 0
  If Not rngZ Is Nothing Then
    rngZ.Resize(UBound(varZ)).Value = varZ
  End If
End Sub

Gruß, Uwe
Code:
Sub M_snb()
  ReDim sp(Sheet1.Cells(2, 1).CurrentRegion.Offset(1, 11).SpecialCells(2).Count, 0)
 
  For Each it In Sheet1.Cells(2, 1).CurrentRegion.Offset(1, 11).SpecialCells(2)
    sp(n, 0) = it
    n = n + 1
  Next
 
  Cells(20, 1).Resize(UBound(sp) + 1) = sp
End Sub
Hi,

ich weiß nicht, ob es in Deiner Version funktioniert:

Code:
=ZUSPALTE(L3:R18;1)
Danke Bosko! Ich kannte das Ignore-Argument noch nicht. Super Sache! Das erlaubt extrem verkürzte Flatterdaten-zu-Strukturdaten.
Hallo zusammen,

sorry für die späte Rückmeldung. Der erste Beitrag von Stoffo hat die Sache gelöst, ich finde es super interessant das man diesen Matrixbereich einfach per Zellen einfügen vergrößern kann, ich habe meine Daten dann einfach da rein kopiert :D die Formel habe ich leider nicht verstanden und auch die anderen ganzen tollen Lösungen mit VBA konnte ich leider nicht austesten :D


Trotzdem vielen Dank an alle und noch ein schönes Wochenende! 

Liebe Grüße,
Robin