Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1404to1408
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Unterschiedlichen Spaltenköpfe sortie

Unterschiedlichen Spaltenköpfe sortie
28.01.2015 15:30:11
Peter
Hallo
Seit längerem stellt sich wieder eine "unlösbare" Aufgabe für mich. Nachfolgend Beispieldaten zur Veranschaulichung:
Spalte A B C D
Jahr 2004 2005 2006 2007
Daten1 100 200 300 400
Daten2 20 15 7 5
Jahr 2005 2006 2007 2008
Daten3 140 250 350 450
Daten4 18 11 10 14
Daten5 52100 4200 9300 7400
Die Aufgabenstellung lautet nun, die Daten der jeweiligen Jahre in einer Spalte zu sammeln/sortieren, damit darauf aufgebaut werden kann. Eine manuelle Adaption ist auszuschließen, da es sich um Datenmengen zwischen 10.000 und 250.000 Zeilen handelt. Derzeit fehlt jeglicher Ansatz, dieses Problem zu lösen, da eine "fixe" Datenmanipulation über Bezüge nicht möglich ist, da sich die Größe der Datenblöcke ändert.
Für Ideen wäre ich äußerst dankbar. Betonen möchte ich, dass es keine fertige Lösung sein muss.Ein Musterfile ist angeschlossen unter https://www.herber.de/bbs/user/95359.xlsx
(ursprüngliche Quelle sind csv-Files).
Dankeschön
Peter

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nur ne Frage/Idee...
28.01.2015 15:45:23
Oberschlumpf
Hi Peter
ausgehend von deiner Bsp-Datei würde ich, um dein Wunschziel zu erreichen, so vorgehen:
1. Zeile 3, Spalten B-K, als Vergleich benutzen
2. in Zeile 4 mit der Suche nach Vergleich beginnen
3. alle Leerzeilen löschen (leer in den Spalten B-K)
4. alle Zeilen löschen, deren Inhalt gleich Zeile 3, Spalten B-K ist
Wenn fertig, stehen nur in Zeile 3 die Jahres/Monatswerte als Spaltenüberschrift, und alles, was darunter folgt, gehört ja zu den jeweiligen Jahren.
Oder was hab ich nicht/falsch verstanden?
Ciao
Thorsten

AW: Unterschiedlichen Spaltenköpfe sortie
28.01.2015 16:01:57
Klaus
Hallo Peter,
in deiner 800-Zeilen Musterdatei dauert mein Makro knapp eine Minute, funktioniert aber. Bei 250000 Zeilen würde ich das ganze über Nacht laufen lassen, oder ein gutes Buch mitnehmen.
Ich bin mir sicher, es gibt noch Verbesserungspotential! Zum Beispiel könnte man die Zeilen in Gruppen verschieben statt jeder Zeile einzeln, das bringt bestimmt einiges. Auch könnte man bestimmt die Berechnungen welche ich über Hilfsspalten schiebe direkt im VBA vornehmen.
Aber:
Für Ideen wäre ich äußerst dankbar. Betonen möchte ich, dass es keine fertige Lösung sein muss.
Eine langsame fertige Lösung hast du jetzt, das werte ich mal als Idee. Eine schnell laufende Lösung kannst du ja selber entwickeln, das ist jetzt reine Fleißarbeit.
Sub ZeilenNachJahrSortieren()
Dim lRow As Long
Dim i As Long
Application.ScreenUpdating = False
With Sheets("500010 Key Ratios")
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("A1:B1").EntireColumn.Insert
.Range("A3:A" & lRow).FormulaR1C1 = "=IF(OR(ISNUMBER(RC[3]),ISERROR(FIND(""-"",RC[3]))),R[- _
1]C,--LEFT(RC[3],4))"
.Range("B3:B" & lRow).FormulaR1C1 = "=RC[-1]-MIN(C[-1])"
For i = 3 To lRow
.Cells(i, 4).Resize(1, .Cells(i, 2).Value + 1).Insert shift:=xlToRight, CopyOrigin:= _
xlFormatFromLeftOrAbove
Application.StatusBar = "Zeile " & i & " von " & lRow & " in Bearbeitung"
Next i
.Range("D1").EntireColumn.Delete shift:=xlToLeft
.Range("A1:B1").EntireColumn.Delete shift:=xlToLeft
End With
Application.StatusBar = ""
Application.ScreenUpdating = True
End Sub
Grüße,
Klaus M.vdT.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige