Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
832to836
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
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme IF-Schleife

Probleme IF-Schleife
09.01.2007 17:35:40
B@sti
Hallo Leute!
Ich habe folgendes Problem: ich moechte verschiedene Argumente mit Hilfe einer IF-Schleife abpruefen (s. untenstehende Formel). Bin aber wahrscheinlich an die Grenzen der IF-Funktion angelangt, da mit ihr nur bis zu sieben Bedingungen abgeprueft werden koennen.
Kennt irgendjemand ne andere Formel bzw. weiss, wie ich die Abfrage umformulieren koennte, damit Excel die Formel 'schluckt'?
(VBA-Code waere denkbar, allerdings sollte diese Moeglichkeit ausgeklammert bleiben, da auch andere Kollegen ohne jeglichen VBA-Kenntnisse hiermit klarkommen muessen).
Vielen Dank schonmal fuer eure Muehen und Antworten.
Gruss B@sti
=IF($BL7="see FY06/07","see FY06/07",IF($BL7="see FY07/08","see FY07/08",IF($BL7="see FY08/09","see FY08/09",IF($BL7="see FY09/10","see FY09/10",IF($BL7="see FY10/11","see FY10/11",IF(OR($BK7=0,$BK7=""),0,IF(OR($BL7=0,$BL7=""),"Check starting price!",IF(OR($BM7="",$BM7="-",$BN7="",$BN7=0),$BL7,IF(OR($BM7$BP$4),"Check date of price change!",(SUM(($BL7*(12-(VLOOKUP($BM7,'Distribution key & DATA'!$E$20:$G$32,3,FALSE)))),(($BO7*(VLOOKUP($BM7,'Distribution key & DATA'!$E$20:$G$32,3,FALSE)))))/12)))))))

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme IF-Schleife
09.01.2007 22:10:33
yogi
Tach B@sti
die Formel ist mir zu kompliziert um sie auseinander zu nehmen. Aber wenn ich so Riesendinger habe, teile ich sie in Einzelteile auf, deren Resultat ich in ausgeblendeten Zeilen/Spalten ablege. Lässt sich dann auch einfacher überprüfen.
Gruss
yogi
AW: Probleme IF-Schleife
09.01.2007 22:57:56
B@sti
Hallo Yogi,
danke fuer Deine Antwort, mir bleibt wohl kaum eine andere Loesung uebrig ;-)
Gruss B@sti
AW: IF-Konstrukt, Formel aufgeteilt, z.B. so,...
09.01.2007 22:58:26
Luc:-?
...Basti,
Hier mal deine Formel übersichtlicher dargestellt, entschlackt und korrigiert:

=IF($BL7="see FY06/07","see FY06/07",
IF($BL7="see FY07/08","see FY07/08",
IF($BL7="see FY08/09","see FY08/09",
IF($BL7="see FY09/10","see FY09/10",
IF($BL7="see FY10/11","see FY10/11",
IF(OR($BK7=0,$BK7=""),0,
IF(OR($BL7=0,$BL7=""),"Check starting price!",
IF(OR($BM7="",$BM7="-",$BN7="",$BN7=0),$BL7,
IF(OR($BM7<$BP$3,$BM7>$BP$4),"Check date of price change!",
($BL7*(12-VLOOKUP($BM7,'Distribution key & DATA'!$E$20:$G$32,3,FALSE))+
$BO7*VLOOKUP($BM7,'Distribution key & DATA'!$E$20:$G$32,3,FALSE))/12)))))))))

Da 9 IFs hintereinander stehen, müssen dem letzten Else-Wert SUM(...)/12 auch 9 Klammern folgen. Etliche Klammern sind dafür - wie auch SUM - überflüssig.
Um das Überschreiten der max Untergliederungstiefe zu vermeiden, bietet sich die Fkt CHOOSE an. Damit die vorgegebene Reihenfolge gewahrt bleibt, wird aus den Vgll ein String aus 0 und 1 gebildet. Die letzte 1 steht für den ultimativen Else-Wert, damit kein Fehler entstehen kann. Die Fkt SEARCH gibt die Position der 1. 1 im String wieder. Diese dient der Fkt CHOOSE als Auswahlwert für die anschließend in gleicher Reihenfolge angeordneten zugehörigen Ergebnisse...

=CHOOSE(SEARCH(1,
--($BL7="see FY06/07")&
--($BL7="see FY07/08")&
--($BL7="see FY08/09")&
--($BL7="see FY09/10")&
--($BL7="see FY10/11")&
--OR($BK7=0,$BK7="")&
--OR($BL7=0,$BL7="")&
--OR($BM7="",$BM7="-",$BN7="",$BN7=0)&
--OR($BM7<$BP$3,$BM7>$BP$4)&
1),
"see FY06/07",
"see FY07/08",
"see FY08/09",
"see FY09/10",
"see FY10/11",
0,
"Check starting price!",
$BL7,
"Check date of price change!"),
($BL7*(12-VLOOKUP($BM7,'Distribution key & DATA'!$E$20:$G$32,3,FALSE))+
$BO7*VLOOKUP($BM7,'Distribution key & DATA'!$E$20:$G$32,3,FALSE))/12)

Doppelminus dient zur Umwandlung des Wahrheitswerts in eine Zahl (0 oder 1).
Wenn sich bestimmte abgrenzbare, quasi selbständige Formelteile mehrfach wiederholen, ist es zweckmäßig, diese als benannte Formeln zu definieren und dann nur ihre Namen in der Hauptformel zu verwenden. Dadurch lässt sich die Hierarchieschranke ebenfalls umgehen. Das ist bei diesem IF-Konstrukt aber nicht möglich.
Viel Erfolg, Basti!
Gruß Luc :-?
PS: Hab' schon längere Formeln analysiert, Yogi! ;-)
Anzeige
Formelbandwürmer
10.01.2007 14:29:55
yogi
Tach Luc
Chapeau! Wer solche Bandwürmer analisieren kann !!
Formeln mit 9 verschachtelten IF-Bedingungen sind, auch wenn sie so gut strukturiert sind wie du das gemacht hast, kaum prüfbar und noch viel schwieriger zu modifizieren. Wenn dann Resultate der Bandwürmer von anderen Bandwürmern verwendet werden, gibts am Schluss einen Bandwurmsalat, den niemand mehr durchschaut.
Daher mein (unverbidlicher) Vorschlag: Nie mehr als 2 verschachtelte IF's ;-)))
Gruss yogi
...in meiner Alternative sind gar keine! ;-) orT
10.01.2007 15:43:52
Luc:-?
Gruß Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige