Ich versuche eine einfache Formel in Excel auszuführen:
=IF(V3>419, "Pass", IF(V3>459, "Merit", IF(V3>499, "Dist", IF(V3>519, "Dist*","Fail"))))
Ich habe 2 Spalten; Insgesamt und Note
Overall Grade
70 Fail
220 Fail
420 Pass
Es muss einen einfacheren Weg geben?
Antworten:
Sie möchten also anhand Ihrer Kommentare wissen, warum diese Formel nicht funktioniert und zweitens, ob sie optimiert werden kann?
Es funktioniert nicht, weil alles, was als Verdienst, Dist oder Dist * zählt, höher als 419 ist und daher als Pass zählt.
Ihre Formel wird von links nach rechts ausgewertet. Bevor sie etwas anderes ausführt, prüft sie, ob die Punktzahl höher als 419 ist. Selbst wenn die Punktzahl 800 ist, ist sie höher als 419, und der erste Test ist WAHR. Excel glaubt nicht, dass es weitermachen muss, also hört es dort auf und nennt es einen Pass.
Wenn Sie die Zelle mit Ihrer Formel auswählen, zur Registerkarte Formeln wechseln und unter Formelüberwachung die Option Formel auswerten auswählen, können Sie die Formel schrittweise durchgehen, um genau zu sehen, was passiert.
Es gibt zwei Möglichkeiten, dies zu beheben. Eine Möglichkeit besteht darin, die aktuellen Anweisungen durch eine AND-Anweisung zu ersetzen
Aber das ist klobig. Sie sollten die Aussagen einfach umkehren:
Auf diese Weise wird nach dem nächsthöheren Wert gesucht usw., wenn der Wert für einen Dist * nicht hoch genug ist.
Leider kann ich mir im zweiten Teil keine Möglichkeit vorstellen, die Formel zu rationalisieren, ohne die Lösung zu komplizieren.
quelle
VLOOKUP
.Sie arbeiten rückwärts, Sie benötigen zuerst die höchste Note, andernfalls geben 1.000 die erste Note
if
für "pass" weiter, anstatt es zu "dist *" zu machen. So was:=IF(V3>519,"Dist*",IF(V3>499,"Dist",IF(V3>459,"Merit",IF(V3>419,"Pass","Fail"))))
Andernfalls müssen Sie Ihre
if
zwischen Werten verschachteln , was viel weniger sauber ist, z=if(419<v3<459,"pass",...
quelle