T&T_WENN-Abfrage (Dazu eine gleichnamige Tabelle, welche Sie z.B. nach TurboCalc:Tabellen kopieren sollten). SYNTAX der Funktion WENN (IF): WENN(Bedingung;Wert1;Wert2) Das Erstellen einer einfachen IF-Abfrage dürfte eigentlich keine Schwierigkeiten bereiten. Das ändert sich allerdings, wenn eine Vielzahl von Verschachtelungen den Durchblick trüben, WENN(Bedingung;Wert1;WENN(Bedingung;Wert2;WENN(Bedingung;Wert3;Wert4))) oder in den Verschachtelungen noch andere TurboCalc Funktionen als Parameter verwendet werden müssen. WENN(Bedingung;Funktion1;WENN(Funktion2;Funktion3;Funktion4)) Dann gibt es ein paar ganz einfachen Tricks, um sich nicht rettungslos die Gehirnwindungen zu verknoten: Trick 1. Bauen Sie die Formel modulweise auf, Schritt für Schritt und überprüfen Sie diese jeweils, nach dem Hinzufügen eines neuen Moduls, mit WECHSELNDEN Operatoren und/oder Bedingungen. Der Wechsel der Operatoren/Bedingungen ist deshalb wichtig, weil dann nicht nur der "WAHR-Wert" seine Funktionsfähigkeit unter Beweis stellen muß, sondern auch der "FALSCH-Wert", denn NUR der FALSCH-Wert bringt ja die nächste "Schachtel" ins Spiel. Bedenken Sie dabei aber auch, daß der FALSCH-Wert nicht unbedingt der ZWEITE Wert sein muß, denn wenn Sie mittels NICHT (NOT) eine Umkehrung vorgenommen haben, ist Wert1 der "FALSCH-Wert", gel! WENN(NOT(Bedingung);Wert1;WENN(Bedingung;Wert2;Wert3)) Eine Formel, welche nur soweit korrekt ist, daß der WAHR-Wert in Aktion tritt, aber im - oft erheblich langen - Rest völlig vermurkst ist, kann durchaus solange gut funktionieren, bis die WAHR-Aussage nicht mehr zutrifft. Nur dann, wenn der Syntax nicht stimmt, wird eine Formel SOFORT eine der Fehlermeldungen als Ergebnis liefern. Haben Sie also eine Formel produziert, so geben Sie sich beim Test nicht mit einem scheinbar korrekten Ergebnis zufrieden, prüfen Sie auch in "die andere Richtung". Beispiel 1 (siehe beiliegende Tabelle "T&T_WENN"): =IF(B9=B7;A2;ABS(B5:B11)) Wenn hier B9 gleich B7 ist, wird diese Zelle den Wert der Zelle A2 annehmen. Bei der Überprüfung werden Sie sagen: "Prima, funktioniert ja auf Anhieb". Das geht aber nur solange gut, als diese Bedingung WAHR ist. Wird jedoch eines schönen Tages eine der Zellen (B9 oder B7) ihren Wert ändern, so wird der FALSCH-Wert ("ABS(B5:B11)") garantiert seinem Namen Ehre machen und ein falsches Ergebnis liefern, weil nämlich die Funktion "ABS" aus einem Bereich nur den Inhalt der ERSTEN Zelle (hier also B5) als positiven Retourwert liefert (steht zwar nicht im Manual, stimmt aber dennoch!). Hätten Sie aber bei Erstellung der Formel, nach der Überprüfung des Ergebnisses mit "=", den Operator gewechselt und stattdessen "<>" und/oder "<" und/oder ">" verwendet... (NICHT >= oder <=, das brächte nämlich dasselbe Ergebnis!) ...dann währen Sie darauf gekommen, daß die Formel nur in EINEM Falle korrekt arbeitet. Sie hätten die Formel nämlich so eingeben müssen: =IF(B9=B7;A2;ABS(SUM(B5:B11))) Unsere obige Formel liefert also nun unter beiden Bedingungen korrekte Ergebnisse. Jetzt bauen wir ein weiteres "Modul" ein: Beispiel 2 (siehe beiliegende Tabelle "T&T_Funktionen002"): Wir wollen, daß, im Falle der FALSCH-Wert käme zum Zuge, nicht einfach der Absolutwert der Summe aus B5:B11 gezeigt wird, sondern, wenn dieser größer oder gleich "30" wäre, die Zelle den Wert "25" annehmen sollte, andernfalls aber den Wert "10". Ob die neue Formel besonders sinnvoll ist, steht auf einem anderen Blatt und ist hier nicht von Bedeutung! Der "Schwanz" unserer neuen Formel muß also so aussehen: >=30;25;10 Den WAHR-Wert des ersten "Moduls" wollen wir zum Testen gleich unterdrücken, weil wir ja jetzt wissen, daß er korrekt arbeitet. Also ersetzen wir - bis zur endgültigen Fertigstellung - das "=" durch ein "<>" und bringen damit sofort den FALSCH-Wert ins Spiel. So lautet der "Kopf" der neuen Formel also =IF(B9<>B7;A2; ) Den FALSCH-Wert der alten Formel "ABS(SUM(B5:B11))" machen wir nun zur Bedingung der neuen IF-Abfrage, indem wir einfach ein "IF(" davor stellen und die zugehörige End-Klammer hinten anhängen und erhalten so die neue Bedingung IF(ABS(SUM(B5:B11) ) die wir als Teil der Vergleichs-Aussage an den "Kopf" anhängen. Das neue Formel-Fragment sieht nun so aus: =IF(B9<>B7;A2;IF(ABS(SUM(B5:B11) )) Fehlt als Abschluß noch der Operator und der Vergleichs-Wert zu "ABS...", sowie je ein neuer Wahr- und Falsch-Wert. Das haben wir schon definiert, es ist der "Schwanz" von weiter oben; der wird jetzt einfach hinten angekoppelt. Die neue Formel ist fertig... =IF(B9<>B7;A2;IF(ABS(SUM(B5:B11))>=30;25;10)) ...und wir stellen mit erstaunten Blauaugen fest, daß alles, was ab dem zweiten "IF" steht (von der letzten Klammer abgesehen) eine vollständige, für sich alleine existenzfähige Formel ist: =IF(ABS(SUM(B5:B11))>=30;25;10) Und um Ihnen das zu sagen, habe ich so viele Worte gebraucht; es sieht also komplizierter aus, als es tatsächlich ist! Wenn Sie nun alles getestet haben, sollten Sie nicht vergessen den Originalzustand wieder herzustellen. Dummies durch originale Werte ersetzen, Operatoren richtigstellen usw.. Auf diese Weise können Sie bis zu 400 Zeichen in eine einzige Formel quetschen. was eine große Zahl von weiteren IF-Abfragen ermöglicht. Sie könnten z.B. anstatt des Wahrwertes (hier "25") und/oder des Falsch-Wertes (hier "10") eine Funktion, eine Formel oder eben eine weitere IF-Bedingung definieren. Auf beiliegender Tabelle "T&T_Funktionen002" finden Sie eine nochmal erweiterte Formel als "Beispiel 3" . Kommentar dazu ist überflüssig. Trick 2. Ersetzen Sie (zu Testzwecken) in einer komplizierteren Formel die Parameter durch einfache, leicht überprüfbare Werte. Um bei obigem Beispiel zu bleiben: Wenn "ABS(SUM(B5:B11))" eine mehrstellige Zahl ergeben müßte, welche Sie nicht auf Anhieb als richtig oder falsch einschätzen können, dann ersetzen Sie die Inhalte der einzelnen Zellen des Bereiches durch einfache Zahlen, wie (1,2,3,4,5,6,7). Errechnet dann die Formel in der Zelle eine magere "7" , dann wird Sie das doch (hoffentlich) ins Grübeln bringen. Bei einem Ergebnis von "28" jedoch dürfen Sie zuversichtlich sein, daß die Formel funktioniert und Sie guten Gewissens diese "Dummies" wieder durch die echten Werte ersetzen können. Trick 3. Wenn Sie irgendwo stecken bleiben, liegt es oft an den Klammern. Die erste Regel ist abzählen; soviel offene - soviel geschlossene Klammern. Das alleine genügt natürlich noch nicht, weil es auch auf die richtige Position der Klammer ankommt, aber hilfreich ist es zunächst allemal. Denken Sie daran, daß (Ausnahmen wie "TODAY" bestätigen die Regel) JEDE Funktion, welche Parameter annimmt, ein Klammer PAAR erwartet, und sei es ein Leeres. Trick 4. ist eigentlich Keiner, sondern nur eine Anmerkung: Anstatt den WAHR-Wert mittels Änderung von Operatoren oder Bedingungen zu unterdrücken, können Sie das auch mit NOT erreichen; im Beispiel 1 würde das dann so aussehen... =IF(NOT(B9=B7);A2;ABS(SUM(B5:B11))) Viel Spaß beim Experimentieren! Günther Klug v. Biedermann, München (AC RUX) eMail : klugvbiedermann.muc@t-online.de HomePage : http://amiga-club.de/homepage/rux/ruxpage.htm