Mehrere exzel zeilen unter einer spalte unterordnen?

5 Antworten

Von Experte GutenTag2003 bestätigt

Hallo,

bin nicht ganz sicher wie deine Bereiche die du zusammenführen möchtest genau aussehen, also zu allen Varianten etwas:

Falls Zeilen/Spalten in Leserichtung jeweils die gleiche Anzahl Einträge haben kannst du diese Formeln verwenden:

  • Leserichtung Zeilen: =WENNFEHLER(INDEX(Tabelle1!$A$1:$Z$2;AUFRUNDEN(ZEILE(1:1)/26;0);REST(ZEILE(1:1)-1;26)+1);"")
  • Leserichtung Spalten: =INDEX($A$1:$B$10;REST(ZEILE(1:1)-1;10)+1;AUFRUNDEN(ZEILE(1:1)/10;0))
  • Die Zahl (26 bzw 10) durch die geteilt wird entspricht jeweils der (maximalen) Anzahl der Einträge pro Zeile/Spalte

Falls Zeilen/Spalten in Leserichtung verschiedene Anzahlen von Einträgen müsste man sehr viel verschachteln um die Positionen korrekt zu ermitteln, daher scheint es mir sinvoller die obigen Formeln in einer Hilfspalte zu verwenden und aus dieser die Leerwerte zu entfernen oder die Zusammenführung per VBA zu erledigen:

Sub AllinOnespaltenweise()
Dim start As String, Ende As String
Dim xSpalten As Long, xZeilen As Long, zielZeile As Long
Dim s As Long, z As Long

start = "A1"
Ende = "C20"

xSpalten = Range(Ende).Column - Range(start).Column + 1
xZeilen = Range(Ende).Row - Range(start).Row + 1

For s = 1 To xSpalten
    z = 1
    For z = 1 To xZeilen
        wert = ActiveSheet.Cells(z, s).Value
        If wert <> "" Then
            zielZeile = zielZeile + 1
            ActiveSheet.Cells(zielZeile, Range(Ende).Column + 1) = wert
        End If
    Next z
Next s


End Sub

Sub AllinOnezeilenweise()
Dim Bereich As Range, zelle As Range
Dim x As Long, AusgabeSpalte As Long

Set Bereich = Range("A1:C20")
AusgabeSpalte = Bereich.Columns.Count + 1

For Each zelle In Bereich
    If zelle.Value <> "" Then
        x = x + 1
        ActiveSheet.Cells(x, AusgabeSpalte) = zelle.Value
    End If
Next zelle

End Sub

Bin mir nicht sicher, ob das möglich ist.

Da stimmt etwas in der Fragestellung nicht. B1:Z1 ist doch Teil von A1:Z1

Versuche es doch mal mit

  • markieren
  • kopieren
  • Transponieren

Nach Deinem Text stehen Deine Daten alle in der Zeile 1

Sind es mehrere Zeilen, werden beim Transponieren alle Daten der Zeilen den Spalten zugeordnet.

...

oder jede einzelne Zeile entsprechend transponieren und untereinander einfügen

Woher ich das weiß:eigene Erfahrung

unbukannter 
Beitragsersteller
 19.11.2020, 10:10

Und ich möchte am ende nur eine Spalte haben. So wie du es gesagt hast habe ich es auch gemacht. Habe habe danach mehrere Spalten erhalten. Ich will aber nur dass es Spalte A gibt die anderen Spalten unter A kommen

1
GutenTag2003  19.11.2020, 10:20
@unbukannter
oder jede einzelne Zeile entsprechend transponieren und untereinander einfügen

Um wie viele Zeilen geht es denn ?

1
  • Markier die Zeile ([Strg]+g, 1:1[Enter])
  • Kopieren [Strg]+c
  • A1 markieren
  • rechte Maustaste → Inhalte einfügen... → Transponieren