Excel If Formel

0

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?

Bgrewal
quelle
Also fragst du nach einem Weg, dies ohne so viele Aussagen zu tun?
CLockeWork
Vielleicht oder nur, um das zu beheben, damit es funktioniert ... fehlt mir ein Komma oder irgendwo?
Bgrewal
es scheint derzeit nur für pass zu funktionieren?
Bgrewal
Vielleicht möchten Sie Ihrer Frage ein wenig mehr Details hinzufügen. Es war nicht klar, was Sie gefragt haben.
CLockeWork

Antworten:

2

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

AND(V3>419,V3<459)

Aber das ist klobig. Sie sollten die Aussagen einfach umkehren:

=IF(V3>519,"Dist*",IF(V3>499,"Dist",IF(V3>459,"Merit",IF(V3>419,"Pass","Fail"))))


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.

CLockeWork
quelle
Für den zweiten Teil würde ich persönlich vorschlagen, eine Tabelle mit den Werten und den entsprechenden Ergebnissen zu verwenden, mit einem VLOOKUP.
Jerry
Es ist ein ziemlich guter Weg, um zu gehen; Dies würde zwar die Formel komplizierter machen, was der Frage widerspräche, aber es wäre zukunftssicherer, da Sie die Ziele in der Tabelle anpassen könnten, anstatt die Formel anpassen zu müssen.
CLockeWork
1

Sie arbeiten rückwärts, Sie benötigen zuerst die höchste Note, andernfalls geben 1.000 die erste Note iffü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 ifzwischen Werten verschachteln , was viel weniger sauber ist, z=if(419<v3<459,"pass",...

Raystafarian
quelle
Ah, schlag mich dazu! : D
CLockeWork