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

Forumthread: Jeweils 3 Zeilen zu einer zusammenfassen

Jeweils 3 Zeilen zu einer zusammenfassen
03.02.2022 15:49:44
Franz
Hallo,
in meiner Ausgangstabelle stehen jeweils 3 zusammengehoerige Zeilen hintereinander:
1. Zeile: n Spalten
2. + 3. Zeile: jeweils eine Spalte
Ich moechte eine Tabelle erstellen, in der fuer jeden oben beschriebenen "Dreier-Pack" nur noch eine Zeile steht:
Spalten 1-n aus 1. Ursprungszeile
Spalte n+1: Inhalt Spalte 1 aus 2. Ursprungszeile
Spalte n+2: Inhalt Spalte 1 aus 3. Ursprungszeile
Mini Beispieldatei ist hier: https://www.herber.de/bbs/user/150835.xlsx
Habe trotz Suche hier im Forum noch keine Loesung hingekriegt. Bin fuer alle Tipps dankbar!
Danke und viele Gruesse
Franz
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Jeweils 3 Zeilen zu einer zusammenfassen
03.02.2022 16:12:49
Daniel
Hi
Ich würde in E1 und F1 folgende Formeln einfügen:
E1: =Wenn(D1="";"";A2)
F1: =Wenn(D1="";"";A3)
Beide Formeln nach unten ziehen.
Spalten E:F kopieren und als Wert einfügen
Mit dem Autofilter in Spalte B nach Leer filtern und diese Zeilen löschen.
Gruß Daniel
das geht aber nicht mit n Spalten. owT
03.02.2022 16:23:53
Rudi
AW: das geht aber nicht mit n Spalten. owT
03.02.2022 18:21:32
Daniel
Kommt darauf an, wenn n über alle Zeilen gleich ist so wie im Beispiel, dann gehts.
(Wer nur betreffzeilen schreibt, hat nicht wirklich was zu sagen)
Anzeige
OT: Wie kommst du darauf, ...
04.02.2022 01:46:26
Luc:-?
…Daniel?
Rudi hatte schon 2 Stunden eher was zu sagen! :->
Morhn, Luc :-?
AW: Jeweils 3 Zeilen zu einer zusammenfassen
03.02.2022 16:22:01
Rudi
Hallo,
um wie viele Zeilen geht es denn?
Geht garantiert schnelle aber funzt:

Sub aaa()
Dim lRow As Long, vntTmp, strTmp, lOut As Long
Application.ScreenUpdating = False
For lRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 3
vntTmp = Cells(lRow, 1).Resize(, Application.CountA(Rows(lRow)))
vntTmp = Application.Transpose(vntTmp)
vntTmp = Application.Transpose(vntTmp)
strTmp = Join(vntTmp, "|") & "|" & Cells(lRow + 1, 1) & "|" & Cells(lRow + 2, 1)
vntTmp = Split(strTmp, "|")
lOut = lOut + 1
Sheets("Zieltabelle").Cells(lOut, 1).Resize(, UBound(vntTmp) + 1) = vntTmp
Next
End Sub
Gruß
Rudi
Anzeige
AW: Jeweils 3 Zeilen zu einer zusammenfassen
03.02.2022 23:09:47
Yal
Hallo Rudi,
Nice! Das doppelte Transpose werde ich mit Sicherheit oft misbrauchen ;-)
Wer mag's minimalistisch?

Sub aaa()
Dim R As Range
Const T = "|"
With Application
.ScreenUpdating = False
Set R = Range("A1")
Do While R  ""
Sheets("Zieltabelle").Cells(Int(R.Row / 3) + 1, 1).Resize(, .CountA(Rows(R.Row)) + 2) = _
Split(Join(.Transpose(.Transpose(R.Resize(1, .CountA(Rows(R.Row))))), T) & T & R.Offset(1) & T & R.Offset(2), T)
Set R = R.Offset(3)
Loop
End With
End Sub
genau dein Code, nur "kompakter".
VG
Yal
Anzeige
AW: Jeweils 3 Zeilen zu einer zusammenfassen
03.02.2022 21:27:28
Franz
Vielen Dank schon mal fuer die ganzen Hinweise !!!
Habe alle ausproboiert und it allen kann ich hinkriegen was ich will :). Da ich oefter solche Daten verarbeiten will und diese in der Praxis etwas komplexer sein koennen, passt fuer mich wohl die Makro-Variante am besten. Um es anpassen zu koennen bin ich hier aber noch dabei das Beispiel zu verstehen ...
Anzeige
AW: Jeweils 3 Zeilen zu einer zusammenfassen
03.02.2022 22:49:28
Daniel
Hi
Noch ein einfaches Makro

with Range("A1").currentregion
With .Columns(.Columns.count + 1).resize(, 2)
.Columns(1).formulaR1C1 = "=If(RC2="""","""", R[1]C1)"
.Columns(2).formulaR1C1 = "=If(RC2="""","""", R[2]C1)"
.Formula = .Value
Ende With
.Columns(2).SpecialCells(xlcelltypeblanks).entirerow.delete
Ende with
Anpassung an die Größe der Tabelle erfolgt automatisch.
Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige