Spalte in mehrere Zeilen aufteilen
#1
Guten Tag Leute

Ich bin neu in diesem Forum und habe auch schon ein wenig im Forum geguckt, allerdings habe ich auf meine Frage leider noch keine Antwort gefunden.

Ich kenne mich mit excel nicht sonderlich gut aus, eigentlich nur mit den Standartfunktionen.

Aber nun zu meiner Frage:

Ich habe eine Tabelle mit einer Spalte und 35040 Zeilen. In Jeder Zelle steht ein Wert. Nun möchte ich diese Tabelle in eine Tabelle im Format 365 Spalten mit je 96 Zeilen haben.
Es sollen also quasi immer 96 Werte genommen werden und diese dann in eine neue Spalte neben der vorherigen Spalte eingefügt werden.
Da dies per Hand einfach zu aufwändig wäre, hoffe ich, dass es dafür eine Funktion in excel gibt.

Ich hoffe ihr habt verstanden, was ich von euch möchte :)

Vielen Dank schonmal vorweg :)
Top
#2
Hallo!
Vorweg:
Darf es VBA sein oder möchtest Du Formeln?
Ich bastel mal etwas mit VBA.

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
#3
Wie es gemacht wird ist egal, da ich im Endeffekt eh nur die Werte aus den Tabellen benötige :)
Top
#4
Hi!
Laufzeit ca. 5 Sekunden, könnte man mit Arrays beschleunigen, aber vielleicht reicht es Dir ja auch so:

Sub tranform()
Dim cnt As Long, Spalte As Integer
Spalte = 2
Application.ScreenUpdating = True
With Tabelle1
   For cnt = 97 To 35040 Step 96
      .Range(.Cells(cnt, 1), Cells(cnt + 95, 1)).Cut .Cells(1, Spalte)
      Spalte = Spalte + 1
   Next
End With
End Sub

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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Decker90
Top
#5
Hallo,

in B1 diese Formel:


Code:
=INDEX($A:$A;SPALTE(A$1)*96+ZEILE($A1))


bis zur Zeile 96 nach unten und bis zur Spalte 364 nach rechts ziehen.
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:
  • Decker90
Top
#6
Hi Bosko!
Genau daran habe ich auch gerade gearbeitet (mit einer etwas anderen Formel).  :19:
Als Makro pfeilschnell (0,3 Sekunden):

Sub PerFormel()
Application.ScreenUpdating = False
With Tabelle1
   With .Range(.Cells(1, 2), .Cells(96, 365))
      .Formula = "=INDEX(C1,COLUMN(RC[-1])*96+ROW())"
      .Copy: .PasteSpecial xlValues
   End With
   .Range("A97:A35040").ClearContents
End With
End Sub

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
Vielen Dank an euch, es haben beide geklappt. Das erspart mir sehr viel Arbeit :)
Top


Gehe zu:


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