Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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 :)
Antworten 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)
Antworten Top
#3
Wie es gemacht wird ist egal, da ich im Endeffekt eh nur die Werte aus den Tabellen benötige :)
Antworten 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
Antworten 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
Antworten 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)
Antworten Top
#7
Vielen Dank an euch, es haben beide geklappt. Das erspart mir sehr viel Arbeit :)
Antworten Top


Gehe zu:


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