Werte einer Spalte in 4er-Block zusammenfassen
#1
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
   

Nachher-Tabelle
   


Grüße Rainer
Top
#2
Hallöchen,

solche Aufgaben haben wir schon öfter hier gelöst, nutze mal unsere Suche oben rechts Smile z.B. nach vertikal horizontal
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Moin

Da gibt es auch was bei excelformeln.nicht-mehr.de.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#4
Hallo Andre,

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

Gruss Rainer
Top
#5
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
Top
#6
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#7
Hallo,
als Formelalternative könntest du auch PowerQuery (Tab "Daten - Aus Tabelle/Bereich") benutzen.

Beispiel anbei.


Angehängte Dateien
.xlsx   PQ Lösung.xlsx (Größe: 18,36 KB / Downloads: 10)
Cadmus
Top
#8
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))
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#9
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
Top
#10
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top


Gehe zu:


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