2.2k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich möchte in einer Excel-Tabelle eine spezielle Datenfilterung vornehmen und habe leider keine Ahnung, ob und mit welchem Aufwand sich für diese Aufgabe ein Makro erstellen lässt.

Vereinfacht dargestellt habe ich eine Tabelle mit 4 Spalten. In den ersten beiden sind Datenreihen, in der dritten Spalte wird die jeweilige Differenz aus den Spalten 1 und 2 als absolute Zahl berechnet und in der Zelle D1 wird eine Variable definiert, die von Hand anzupassen sein soll.

Es soll nun zeilenweise geprüft werden, ob der Wert in Spalte C kleiner dem Wert D1 ist. Die erste darauf zutreffende Zelle wäre dann C n. Wenn dies in der gesamten Tabelle nicht (mehr) zutrifft, ist das Makro zu beenden.
Ansonsten ist beginnend mit der nächsten Zeile zeilenweise zu prüfen, ob C n+1 >= C n , C n+2 >= C n+1, C n+3 >= C n+2 usw. ist. Die erste Zeile, in der dies erfüllt ist, bezeichne ich im Weiteren als Zeile m. Falls diese Voraussetzung bis zum Tabellenende nicht mehr erfüllt wird, sind alle Zeilen ab und einschließlich der Zeile n (nicht m !) zu entfernen und das Makro zu beenden.
Ansonsten ist die Zelle B m-2 mit dem Wert aus B m zu überschreiben, die Zeile m und m-1 zu entfernen und das Programm am Tabellenanfang neu zu starten, es sei denn, dass die Zelle B m-2 vor dem Tabellenanfang liegt, das heißt leer ist, denn dann soll die Zeile B m-1 entfernt und das Programm am Tabellenanfang neu gestartet werden.

Hört sich wahrscheinlich nicht nur kompliziert an und es würde wohl auch viel zu weit führen, Sinn und Zweck dieser Datenfilterung zu erklären. Zur Verdeutlichung habe ich aber mal versucht, diese Prozedur in einem Ablaufdiagramm logisch und übersichtlich darzustellen. Ferner habe ich eine Datei mit einer entsprechenden Beispieltabelle sowie einem weiteren Arbeitsblatt mit dem angestrebten Ergebnis sowie dem Ablaufdiagramm bereit gestellt:

Ablaufdiagramm:
img832.imageshack.us/img832/4532/beispielq.jpg

Beispieldatei:
www.mediafire.com/?i15du2ysm9523mr

Wäre super, wenn mir dabei jemand weiterhelfen könnte. Vielleicht ist das für die Experten ja nur eine Fingerübung oder jemand fühlt sich herausgefordert. Auf jeden Fall schon mal meinen herzlichsten Dank im Voraus!

Stefan



[*]
[sup]*Threadedit* 20.01.2012, 11:56:47
Admininfo: Link korrigiert, fehlerhaften Umbruch entfernt
[/sup]

13 Antworten

0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin Stefan,

freut mich sehr, dass ich mit meinem Diagramm eine brauchbare Vorarbeit geleistet habe. Ich hatte meine Daten [...]
mir auch selbst maßgeblich geholfen hat, einige Denkfehler im Vornherein auszumärzen und wirklich alle auftretenden Konstellationen zu berücksichtigen.

Und das war/ist nicht nur brauchbar, sondern das, womit man eigtl. immer beginnt bzw. beginnen sollte. Bei kleineren Sachen laeuft es komplett im Kopf ab, bei groesseren aber auch schonmal auf dem Papier. (Zumindest bei mir.) Es ist somit ein sehr wichtiger Teil, wenn nicht gar der Hauptanteil, der eigtl. Arbeit, den Du da schon geleistet hattest.
Dadurch brauchte ich mich zum Beispiel nicht mehr um das Was, Wann und Warum zu kuemmern, um zum gewuenschten Ergebnis zu kommen, sondern das Ganze nur in Code umsetzen. Dank des geposteten Ergebnisses war es dann auch leicht moeglich die Richtigkeit des Ablaufes zu ueberpruefen.

Im Nachhinein ärgert es mich, dass [...].

Aergere Dich nicht allzusehr, denn es waren keine groesseren Aenderungen notwendig. Wenn Du die Subs "SN_Filter2()" und "SN_Filter3()" mal in einen Vergleicher "packst", dann wirst Du sehen, dass es in diesem Fall tatsaechlich mit einer "Verschiebung einiger Parameter" getan war.
Dennoch ist es besser bei einer BeispielDatei den tatsaechlichen Aufbau wiederzugeben. Aber das machst Du dann halt beim naechsten Mal. ;-)

[...]zur Verwendung nicht weiter öffentlich äußern [...]

Uih... nun hast Du mich aber "angefixed". Es interessiert mich ja schon, aber es zu erfahren ist keine Bedingung fuer die "Fertigstellung". :-D Wenn Du magst und es verantworten kannst, schreib es mir per Mail, wenn nicht, kann ich auch damit leben. ;-) Da Du einen Gruss nach Hamburg sendest, duerfte Dir eine Mailadresse ja auch bekannt sein.

Bevor ich es nun noch vergesse... Hier die geaenderte Version fuer eine 6Spaltige Auswertung.

Cu
TheBlackBird ®
0 Punkte
Beantwortet von insomnic Einsteiger_in (67 Punkte)
Hallo TheBlackBird,

funktioniert auch nach den Änderungen alles bestens, nochmals allerherzlichsten Dank!

Ich habe mich noch registriert in der Hoffnung, Dir diese 50 Bonuspunkte zukommen lassen zu können.

Wie versprochen, werde ich mich noch per E-Mail bei Dir melden, bitte aber um ein wenig Geduld, weil ich für die Formulierung wohl etwas mehr Zeit benötigen werde.

Stefan
0 Punkte
Beantwortet von insomnic Einsteiger_in (67 Punkte)
Hallo TheBlackBird,

da ich auf meine Mail vom vergangenen Donnerstag keine Eingangsbestätigung oder sonstige Reaktion von Dir erhalten habe, wollte ich hier nochmal fragen, ob diese überhaupt angekommen ist.

Würde mich über eine Antwort sehr freuen.

Nochmals besten Dank und Gruß!

Stefan
...