Hi,
ein Datensatz enthält zu viele Zeilen, ich möchte eine Zeile erhalten
und die nächsten 9 Zeilen entfernen. Manuell geht das mit Zeilen
markieren und dann Zeilen löschen. Bei einer 5-stelligen Zeilenanzahl
manuell kaum machbar.
Wie kann man das vom Programm erledigen lassen? Aber nicht ausblenden
oder filtern, die Datei soll nach dem Speichern nur noch 10% der Zeilen
enthalten.
Jürgen
Alles vor dem Block (Suchen Ende), markieren (Shift) bis zum Anfang, in
ein leeres Formular einfügen.
Alles hinter dem Block (Suchen Anfang), markieren (Shift) bis zum Ende,
in ein leeres Formular einfügen oder in vormals Leeres Formular mit dem
Anfangsteil.
Bevor Du das "Original" löschst kannst Du das Ergebnis in Ruhe
betrachten.
PgUp und PgDn und die Cursor-Funktionen funktionieren auch mit
gehaltener Shift-Taste.
Eventuell kann es sinnvoll sein, an den "Schnittstellen" Leerzeilen
einzufügen, damit man, beim schnellen Page Down, die Schnittstelle nicht
übersieht.
Willst Du auf der sicheren Seite bleiben, so kann es nicht schaden, erst
mal mit einer Kopie (auf Dateiebene) zu arbeiten.
du könntest mit "INDIREKT" über Index Zugerifen. Heist:
Erste Spalte: laufend durchnummerieren
Zweite Spalte:
=INDIREKT(VERKETTEN("(#Zielspalte)";(ErsteSpalte)*(#nWert)))
Mit:
(#Zielspalte) = Spalte mit den Zielwerten z.B. A
(#nWert) = Wievielter Wert ausgelesen werden soll. z.B. 9
Edit:
Jürgen S. schrieb:> die Datei soll nach dem Speichern nur noch 10% der Zeilen
Dann die Daten Kopieren, und in eine Neue Mappe mit "Werte einfügen"
einfügen
Jürgen S. schrieb:> Hi,>> ein Datensatz enthält zu viele Zeilen, ich möchte eine Zeile erhalten> und die nächsten 9 Zeilen entfernen. Manuell geht das mit Zeilen> markieren und dann Zeilen löschen. Bei einer 5-stelligen Zeilenanzahl> manuell kaum machbar.>> Wie kann man das vom Programm erledigen lassen? Aber nicht ausblenden> oder filtern, die Datei soll nach dem Speichern nur noch 10% der Zeilen> enthalten.>> Jürgen
So geht's ohne Makro:
1. Du fügst ganz links eine zusätzliche Spalte ein.
2. in die erste Zelle (A1) schreibst du eine 1
3. in die zweite Zelle (A2) schreibst du folgende Formel:
=(WENN(A1<9;A1+1;1))
4. Den Inhalt der zweiten Zelle kopierst du in die Zwischenablage - z.B.
mit Strg & C.
5. Jetzt setzt du den Cursor in die Zelle (B1)
6. Drücke Ende und dann Pfeil nach unten.
Damit kommst du in die letzte Zeile deiner Daten, ohne den ganzen Weg
herunterscrollen zu müssen.
7. Jetzt setzt du den Cursor in die letzten Datenzeile in der Spalte A
8. Drücke die Shift Taste, halte sie gedrückt und dann wieder Ende und
Pfeil nach Oben.
Damit ist die gesamte Spalte A markiert, wieder ohne ewiges gescrolle -
egal, wie lange deine Datei auch ist.
9. Jetzt fügst du die Formel aus der Zwischenablage ein - z.B. mit Strg
& V.
In der ersten Spalte wiederholen sich jetzt die Zahlen 1 bis 9.
10. Aktiviere die Funktion Daten > Filter für das gesamte Tabellenblatt.
11. Stell den Filter in der ersten Spalte so ein, dass nur die Zeilen
mit 1-8 zu sehen sind.
12. Markiere den kompletten Datenbereich, der noch angezeigt wird.
Ohne scrollen geht das wieder so: Cursor in Zelle A1, Shift halten,
Ende, Pfeil nach unten, Ende, Pfeil nach rechts
13. Mit Strg & - löscht du die markierten Zellen (nicht mit Entf, das
macht sie nur leer).
14. Jetzt noch Spalte 1 löschen und den Filter wieder ausschalten.
Wenn es sehr, sehr viele Zeilen sind, lohnt es sich, die Formeln in der
ersten Spalte durch Werte zu ersetzen (beim Einfügen rechtsklick ->
Einfügeoptionen -> Werte) und dann anstatt den Filter zu benutzen, nach
der ersten Spalte zu sortieren und anschließend die unerwünschten Zeilen
zu löschen. Das braucht weniger Rechenzeit.
Entscheidend ist das Navigieren mit Ende und den Pfeiltasten bzw. das
Markieren großer Bereiche mit Shift, Ende und den Pfeiltasten, wie in
den Schritten 6,7,8 und 12 beschrieben. Sonst scrollst du dir einen Wolf
...
Im Grunde ganz einfach, selbst mir stark eingeschränkten
VBA-Kenntnissen. Trau dich und spiel einfach mal ne Runde:
Ansicht; Makros; Aufzeichnung starten; Lösche die ersten 9 Zeilen und
dann die nächsten neun Zeilen. Makro-Aufzeichnung beenden. Alt F11
und du kannst dir die Makrozeilen im VBA-Editor ansehen, modifizieren.
Suchst du spezielle Befehle, findest du 1000sende Hilfestellungen im
Netz. Auf diese Art und Weise lernst du richtig viel und vor allem
verliert man die Angst vor sowas. 🍀
Viel Erfolg!
Sebastian S. schrieb:> Alles vor dem Block (Suchen Ende), markieren (Shift) bis zum Anfang, in> ein leeres Formular einfügen.
Es gibt keine Blöcke. Es gibt viele tausend Zeilen und er will jede 10.
Totomitharry schrieb:> Filtern und kopieren..
Damit habe ich es hinbekommen. Wobei sich das Kopieren etwas hakelig
zeigte, irgendwie war EXCEL die Datenmenge zu groß (Fehlermeldung
>32.000). Dann eben in drei Durchgängen. Aber ich habe nun das, was ich
wollte.
Vielen Dank an alle für die Hilfestellung.
Kleiner Nebentipp.
Leg eine neue Spalte an. Überschrift SORT.
In die 1 Zelle (z.b. a2) schreibst du 1 . In die Zelle darunter =a2+1
Nun kopierst du die Zelle nach unten. Dabei wird automatisch ein Zähler
hoch gezählt.
Nun klickst du die Spalte SORT an, Kopieren und dann INHALTE !!!
Einfügen. Punkt auf WERTE und OK.
Das löschst die Formel und lässt nur die Werte stehen.
Warum das ganze.
Weil bei so Bearbeitungen besonders wenn man sortiert sehr gerne die
Reihenfolge verloren geht. Wenn man nun nach SORT umsortiert danach ist
die Reihenfolge wieder perfekt wie vorher.
Da die Reihenfolge der Zeilen bei vielen meiner Tabellen wichtig ist,
habe ich für so was sogar schon ein Makro. Und da ich noch Excel 2003
nutze, ist das alles nur 1 Klick. ;)
Gabriel M. schrieb:> du könntest mit "INDIREKT" über Index Zugerifen. Heist:>>> Erste Spalte: laufend durchnummerieren> Zweite Spalte:> =INDIREKT(VERKETTEN("(#Zielspalte)";(ErsteSpalte)*(#nWert)))>> Mit:> (#Zielspalte) = Spalte mit den Zielwerten z.B. A> (#nWert) = Wievielter Wert ausgelesen werden soll. z.B. 9
Die erste Spalte brauchst du dazu nicht, es gibt die Funktion zeile()
(und auch spalte() - falls du das ganze in einem zweiten Tabellenblatt
machen willst)
Ansonsten: Ja, so würde ich das quick and dirty auch machen. Wenn öfter
als zweimal, dann lieber Macro (oder Octave oder Python oder...
irgendwas anderes, was Excel-Dateien einlesen kann, davon gibt es ja
vieles)
MfG,
Arno
Jürgen S. schrieb:> irgendwie war EXCEL die Datenmenge zu groß (Fehlermeldung >32.000).
OMG, wie scheißealt ist denn dieses Excel? Dürfte sich um das 2003er
handeln. Das ist fast 20 Jahre alt!
Wird wohl mal Zeit für was neueres...
Ich hatte auch mal das Problem, libreoffice verarbeitet mehr Zeilen und
hat bessere Funktionen für so etwas.
Bzw. Google calc online hat auch coole Features.
Totomitharry schrieb:> Ich hatte auch mal das Problem, libreoffice verarbeitet mehr Zeilen
Halbwegs neuzeitliche Excel-Versionen tuen das ebenfalls.
> und> hat bessere Funktionen für so etwas.
Nein, die Funktionsvielfalt des Microsoft-Originals hat bisher keins der
Plagiate erreicht, Und vor allem auch nicht: deren recht einfache
Zugänglichkeit via VBA...