Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1824to1828
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

Zeilen markieren bis vorhergehender Null

Zeilen markieren bis vorhergehender Null
13.04.2021 14:22:50
Heiko
Hallo,
ich habe eine Datei mit über 400.000 Zeilen und einigen Spalten. Unten ein Auszug.
Die Tabelle ist sortiert nach Konto, Datum, Betrag. Extrem viele Beträge gleichen sich aus. In der letzten Spalte kumuliere ich. Man sieht hier in einigen Zellen eine "0". Darum geht es.
Hier soll nun also dieser Posten und alle Posten, die bis zur vorhergehenden Null erforderlich waren, markiert werden, um sie dann über den Autofilter zu löschen.
In dem dargestellten Beispiel würden alle Posten eliminiert werden, aber es gibt viele Konten, wo nur der jüngste Posten stehen bleiben wird und genau das soll so sein.
Wie realisiere ich eine solche Markierung, idealerweise laufzeitoptimiert. Ich habe ein Makro mit Sverweis genutzt. Das läuft schlappe 4 Stunden. Dafür benötige ich eine schlankere Lösung. Habt ihr Ideen? Danke. VG Heiko
Fett markiert ist die erste Zeile eines neuen Kontos.
Konto Datum Betrag Kumul
10049299631 06.12.2018 9,05 9,05
10049299631 07.01.2019 9,05 18,1
10049299631 27.02.2019 -9,05 9,05
10049299631 06.03.2019 -9,05 0
10049299631 23.04.2019 20,18 20,18
10049299631 02.05.2019 -20,18 0
10049299631 20.07.2019 20,18 20,18
10049299631 05.08.2019 20,18 40,36
10049299631 13.08.2019 -40,36 0
10049299631 04.09.2019 20,18 20,18
10049299631 07.10.2019 20,18 40,36
10049299631 05.11.2019 20,18 60,54
10049299631 14.11.2019 -20,18 40,36
10049299631 21.12.2019 -40,36 0
10049299631 23.12.2019 20,18 20,18
10049299631 06.01.2020 20,18 40,36
10049299631 05.02.2020 20,18 60,54
10049299631 04.03.2020 20,18 80,72
10049299631 03.04.2020 20,18 100,9
10049299631 06.05.2020 20,18 121,08
10049299631 15.05.2020 -121,08 0
10049652569 08.06.2018 9,13 9,13
10049652569 18.06.2018 -9,13 0
10049652569 22.10.2018 38,24 38,24
10049652569 23.10.2018 19,12 57,36
10049652569 24.10.2018 19,12 76,48
10049652569 25.10.2018 19,12 95,6
10049652569 26.10.2018 9,56 105,16
10049652569 16.11.2018 -66,92 38,24
10049652569 17.12.2018 -9,56 28,68
10049652569 17.01.2019 -9,56 19,12
10049652569 11.02.2019 28,68 47,8
10049652569 12.02.2019 28,68 76,48
10049652569 14.02.2019 -38,24 38,24
10049652569 15.02.2019 19,12 57,36
10049652569 18.02.2019 19,12 76,48
10049652569 18.03.2019 -38,24 38,24
10049652569 19.03.2019 19,12 57,36
10049652569 20.03.2019 19,12 76,48
10049652569 16.04.2019 -57,36 19,12
10049652569 17.05.2019 -19,12 0

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen markieren bis vorhergehender Null
13.04.2021 15:05:40
Daniel
Hi
kannst du mal ne Beispieldatei hochladen und markieren, was gelöscht werden soll?
die Datei sollte natürlich auch Zeilen enthalten, die stehen bleiben.
prinzipiell geht Zeilen löschen sehr schnell, wenn man
- in einer Hilfsspalte per Formel alle Zeilen, die gelöscht werden müssen mit 0 markiert und alle Zeilen, die stehen bleiben müssen mit der aktuellen Zeilennummer.
- dann wendet man das DUPLIKATE ENTFERNEN an, mit der Hilfsspalte als Kriterium
Gruß Daniel
AW: mein Vorschlag wäre eine PowerQuery Lösung ...
13.04.2021 15:58:22
neopa
Hallo Heiko,
... dazu wird zunächst eine "Hilfs-"Abfrage mit lediglich einem "Schritt" - Gruppieren nach "Gruppe" und für Maximum des Datum als interne Verbindung abgelegt und in in der eigentlichen Abfrage wird in einem Definitionsschritt eine Zusammenführung mit der "Hilfs-"abfrage bezogen auf die beiden Spalten "Gruppe" und Datum über einen "inneren Join (nur übereinstimmende Zeilen) " vorgenommen. Danach die erzeugte Tabellenspalte entfernt und in der Spalte "Kumul" die 0-Werte ausgefiltert und das Ergebnis in eine neue Tabelle geladen.
Gruß Werner
.. , - ...
AW: alternativ mit Formel ...
13.04.2021 16:06:08
neopa
Hallo,
... in E2: =1-(A3A2)*(D2&gt0) und Formel nach unten kopieren und nach 1 in Spalte E filtern und die gefilterten Zeilen löschen.
Gruß Werner
.. , - ...
Anzeige
AW: alternativ mit Formel ...
14.04.2021 11:28:09
Heiko
Hi Werner,
ich habe mal die Variante mit der Formel probiert und die funktioniert fast perfekt. Schon mal bis hierhin vielen Dank!
Es gibt allerdings noch ein kleines Problem.
Die Formel berücksichtigt nicht, wenn der Endsaldo einer Gruppe kleiner Null ist.
Das kann ich natürlich mit ...*(D20) beheben.
Eine grundlegende Sache ist mir aber zusätzlich wichtig.
Immer dann, wenn innerhalb einer Gruppe der Saldo nicht auf Null endet, soll nicht nur der letzte Wert mit einer "0" markiert werden, also stehen bleiben, sondern alle Werte die davor stehen und zu dem unausgeglichenen Saldo führen. Das ist vor Allem wichtig, wenn die Beträge aus verschiedenen Jahren stammen. In der etwas größeren Beispieldatei habe ich den unkritischen Fall (alle Posten, die stehen bleiben sollen, stammen aus dem gleichen Jahr) gelb markiert und den kritischen (alle Posten, die stehen bleiben sollen, stammen aus verschiedenen Jahren) rot markiert.
https://www.herber.de/bbs/user/145507.xlsx
VG
Heiko
Anzeige
AW: wenn dem so sein soll ...
14.04.2021 13:32:05
neopa
Hallo Heiko,
... folgende Formel in E2: =MAX(1-((A3A2)+(E3=0))*(D20);) und nach unten kopieren.
Gruß Werner
.. , - ...
AW: wenn dem so sein soll ...
14.04.2021 14:41:27
Heiko
Hi Werner!
Ich drehe ab! Das ist es! Du hast mir sehr geholfen.
Jetzt muss ich die Formel nur noch zerlegen, um sie auch zu verstehen :)
Das Problem ist aber gelöst. Top!
VG
Heiko
AW: gerne owT
14.04.2021 16:24:20
neopa
Gruß Werner
.. , - ...
AW: Zeilen markieren bis vorhergehender Null
13.04.2021 17:03:03
Daniel
HI
diese Formel in E2 und nach unten ziehen: =WENN(D2=0;0;WENN(A2=A3;E3;ZEILE()))
in E1 ebenfalls die 0 eintragen.
dann das DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN auf die ganze Tabelle anwenden, mit der Spalte E als Kriteriumsspalte und der Option "keine Überschrift".
Gruß Daniel
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige