Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Mehrfaches Transponieren
#1
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


Angehängte Dateien
.xlsx   Beispieldatei mehrfaches Transponieren.xlsx (Größe: 9,6 KB / Downloads: 8)
Antworten Top
#2
Moin,

ich verweise mal auf ein anderes Forum. Hier ist glaube ich genau dein Problem/Lösung.
Gruß

Stoffo
Antworten Top
#3
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
Antworten Top
#4
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
Hi,

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

Code:
=ZUSPALTE(L3:R18;1)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • LCohen
Antworten Top
#6
Danke Bosko! Ich kannte das Ignore-Argument noch nicht. Super Sache! Das erlaubt extrem verkürzte Flatterdaten-zu-Strukturdaten.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#7
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
Antworten Top


Gehe zu:


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