Clever-Excel-Forum

Normale Version: Werte einer Spalte in 4er-Block zusammenfassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
ich möchte gerne aus einer Tabelle die Werte die in Spalte C stehen auf einem neuen Tabellenplatt in 4er Blöcke zusammenfassen. 
Mein Lösungsansatz ist bisher:
Schleife durch Vorher-Tabelle ( Zeile für Zeile)
wenn ein Wert in Spalte C steht dann schreibe in Spalte A der Nachher-Tabelle, dann Spalte B usw.
nach 4 Werten neue Zeile in der Nachher-Tabelle

denke, ich mache das sicherlich etwas umständlich. Vielleicht hat mir jemand einen Tipp

Vorher-Tabelle
[attachment=32930]

Nachher-Tabelle
[attachment=32929]


Grüße Rainer
Hallöchen,

solche Aufgaben haben wir schon öfter hier gelöst, nutze mal unsere Suche oben rechts Smile z.B. nach vertikal horizontal
Moin

Da gibt es auch was bei excelformeln.nicht-mehr.de.
Hallo Andre,

mach ich gleich ... habe schon vorher gesucht aber nach Block

Gruss Rainer
Hallo,
habe mir mal die Lösungen( vertikal -horizontal) im Forum angeschaut. Bin noch nicht wirklich weiter gekommen ( als unerfahrener Neuling). Beim transponieren wird die selektierte Spalte komplett als Zeile angezeigt.  Wenn ich jetzt diese in 4er Splaten aufteilen könnte, dann wäre das super.
Einen VBA Ansatz kann ich nicht finden ... 


Gruss Rainer
Moin!
Wozu VBA?
Ist doch einfache Mathematik in der INDEX()-Formel:
ABCDEF
1aabcd
2befgh
3cijkl
4dmnop
5eqrst
6fuvwx
7gyz
8h
9i
10j
11k
12l
13m
14n
15o
16p
17q
18r
19s
20t
21u
22v
23w
24x
25y
26z

ZelleFormel
C1=INDEX($A:$A;ZEILE(X1)*4-4+SPALTE(A1))

Formel aus C1 nach rechts und unten ziehen.
(ich habe hier das Zahlenformat ;;;@ benutzt, um die 0 nicht anzuzeigen.

Gruß Ralf
Hallo,
als Formelalternative könntest du auch PowerQuery (Tab "Daten - Aus Tabelle/Bereich") benutzen.

Beispiel anbei.
Für die Benutzer der Abo-Version von Excel oder auch die Nutzer von Excel-Online habe ich noch eine Variante, die mit einer einzigen Formelzelle in C1 auskommt:
ABCDEF
1aabcd
2befgh
3cijkl
4dmnop
5eqrst
6fuvwx
7gyz
8h
9i
10j
11k
12l
13m
14n
15o
16p
17q
18r
19s
20t
21u
22v
23w
24x
25y
26z

ZelleFormel
C1=INDEX(A:A;SEQUENZ(AUFRUNDEN(ANZAHL2(A:A)/4;0);4))

Das Schöne daran ist, dass man ohne Hirnschmalz den Vierer-Block bequem in seine gewünschte "Breite" ändern kann.

@Cadmus:
Ich habe mir Deine Version aus Interesse angesehen.
Sehr schön!
Du wirst mir aber sicherlich Recht geben, dass meine letzte Formel "etwas" einfacher ist?
Wenn man dann noch die Spaltenanzahl in eine Hilfszelle einträgt, hat man eine dynamische Anpassung:
ABCDEF
1a3abc
2bdef
3cghi
4djkl
5emno
6fpqr
7gstu
8hvwx
9iyz
10j
11k
12l
13m
14n
15o
16p
17q
18r
19s
20t
21u
22v
23w
24x
25y
26z
27

ZelleFormel
C1=INDEX(A:A;SEQUENZ(AUFRUNDEN(ANZAHL2(A:A)/B1;0);B1))
Hallo Forumgemeinde,

wow ... habe wieder viel gelernt. 
Es ist wirklich schön zu sehen, daß es Menschen gibt, die in ihrer Freizeit und ihrem Wissen einem auf die Sprünge helfen.
Herzlichen Dank!

Grüße Rainer
Basiert auf Cadmus' Datei:

Code:
Sub M_snb()
  sn = Cells(1).CurrentRegion
 
  ReDim sp(UBound(sn) \ 4, 3)
 
  For j = 0 To UBound(sn) - 2
      sp(j \ 4, j Mod 4) = sn(4 * (j \ 4) + j Mod 4 + 2, 1)
  Next
 
  Cells(1, 6).Resize(UBound(sp) + 1, UBound(sp, 2) + 1) = sp
End Sub
Seiten: 1 2