Held_der_Arbeit hat geschrieben:das scheint nicht zu funktionieren.
Das funktioniert so, wie du es in deinem ersten Beitrag beschrieben hast. Die Zeilen mit einem Wert in Spalte C, der in Spalte F
nicht vertreten ist, werden – nun ja – nicht gelöscht, sondern markiert. Markierte Zeilen kann man in einem zweiten Schritt mit einer einfachen Filter-Operation eliminieren.
Held_der_Arbeit hat geschrieben:Ausserdem wäre es toll wenn es möglich wäre, dass der Code die Zeilen wirklich löscht, statt sie nur zur Löschung zu markieren.
Dazu musst du programmieren.
Held_der_Arbeit hat geschrieben:Zeile F erreicht das Ende dieser 84 Zeilen allerdings "schneller", da es dort ja fehlende Werte gibt,[…]
Nee, entweder
gibt es die Werte, oder sie
fehlen. Es fehlen genau die in Spalten A:C zu löschenden.
Held_der_Arbeit hat geschrieben:[…] weshalb der Code ab einem bestimmten Punkt nicht mehr dieselben Zeilen vergleichen kann.
Die Begründung verstehe ich nicht. Bisher hast du die Aufgabe so beschrieben, dass die Werte aus Spalte C stets mit den wenigeren(!) Werten in Spalte F zu vergleichen sind. Ab welchem „bestimmten Punkt“ soll das jetzt nicht mehr gelten?
Held_der_Arbeit hat geschrieben:Im Anhang diesmal das komplette File zum besseren Verständnis
Wenn ich das nun richtig verstehe — leider beschreibst du selbst ja die Anforderung immer noch nicht präzise — muss nicht nur Spalte B mit F verglichen werden, sondern die Tupel (Ai:Bi) mit (Ej:Fj).
Dies habe ich in deiner Datei so umgesetzt, dass ich zunächst eine Hilfsspalte G benutze und das Tupel (Ej:Fj) als G=: 1000*Ej+Fj realisiere. Das Tupel (Ai:Bi) kann ich dynamisch in der schon zuvor benutzten Formel mit 1000*Ai+Bi realisiere. Die Formel lautet dann für i=2
Code: Alles auswählen
=WENN(ISTFEHLER(SVERWEIS(1000*A2+B2;$Tabelle1.$G$2:$G$4798;1;0));"löschen";"")
Nachdem Ausfüllen von D2:D5209 habe ich die Spalten A:D markiert,
Daten → Filter… → Standarfilter gewählt und als Filterkriterium Feldname
Anmerkung, Bedingung
<> und Wert
löschen und unter
Mehr Optionen noch
[✓] Filterergebnis ausgeben nach das Ziel $Tabelle2.$A$1 eingetragen. Fertig.
Abschließend: Ich würde es sehr begrüßen, wenn du beim nächsten Mal von vornherein die komplette Aufgabestellung bekannt geben würdest. Das spart Zeit und Arbeit.
Gruß
lorbass
[quote="Held_der_Arbeit"]das scheint nicht zu funktionieren.[/quote] Das funktioniert so, wie du es in deinem ersten Beitrag beschrieben hast. Die Zeilen mit einem Wert in Spalte C, der in Spalte F [u]nicht[/u] vertreten ist, werden – nun ja – nicht gelöscht, sondern markiert. Markierte Zeilen kann man in einem zweiten Schritt mit einer einfachen Filter-Operation eliminieren.
[quote="Held_der_Arbeit"]Ausserdem wäre es toll wenn es möglich wäre, dass der Code die Zeilen wirklich löscht, statt sie nur zur Löschung zu markieren. [/quote] Dazu musst du programmieren.
[quote="Held_der_Arbeit"]Zeile F erreicht das Ende dieser 84 Zeilen allerdings "schneller", da es dort ja fehlende Werte gibt,[…][/quote] Nee, entweder [u]gibt[/u] es die Werte, oder sie [u]fehlen[/u]. Es fehlen genau die in Spalten A:C zu löschenden. [quote="Held_der_Arbeit"][…] weshalb der Code ab einem bestimmten Punkt nicht mehr dieselben Zeilen vergleichen kann.[/quote] Die Begründung verstehe ich nicht. Bisher hast du die Aufgabe so beschrieben, dass die Werte aus Spalte C stets mit den wenigeren(!) Werten in Spalte F zu vergleichen sind. Ab welchem „bestimmten Punkt“ soll das jetzt nicht mehr gelten?
[quote="Held_der_Arbeit"]Im Anhang diesmal das komplette File zum besseren Verständnis[/quote] Wenn ich das nun richtig verstehe — leider beschreibst du selbst ja die Anforderung immer noch nicht präzise — muss nicht nur Spalte B mit F verglichen werden, sondern die Tupel (Ai:Bi) mit (Ej:Fj).
Dies habe ich in deiner Datei so umgesetzt, dass ich zunächst eine Hilfsspalte G benutze und das Tupel (Ej:Fj) als G=: 1000*Ej+Fj realisiere. Das Tupel (Ai:Bi) kann ich dynamisch in der schon zuvor benutzten Formel mit 1000*Ai+Bi realisiere. Die Formel lautet dann für i=2
[code]=WENN(ISTFEHLER(SVERWEIS(1000*A2+B2;$Tabelle1.$G$2:$G$4798;1;0));"löschen";"")[/code]
Nachdem Ausfüllen von D2:D5209 habe ich die Spalten A:D markiert, [i]Daten → Filter… → Standarfilter[/i] gewählt und als Filterkriterium Feldname [i]Anmerkung[/i], Bedingung [i]<>[/i] und Wert [i]löschen[/i] und unter [i]Mehr Optionen[/i] noch [i][✓] Filterergebnis ausgeben nach[/i] das Ziel $Tabelle2.$A$1 eingetragen. Fertig.
Abschließend: Ich würde es sehr begrüßen, wenn du beim nächsten Mal von vornherein die komplette Aufgabestellung bekannt geben würdest. Das spart Zeit und Arbeit.
Gruß
lorbass