
Ich habe eine Tabelle mit Studentendaten, in der jede Zeile einen einzelnen Studenten darstellt. Für jede Klasse gibt es mehrere Spalten 1-N, wobei N die Anzahl der Wiederholungen eines Studenten im Kurs angibt. Hier also einige Beispieldaten, bei denen ein Kurs höchstens 4 Mal wiederholt wurde, wobei das, was ich berechnen möchte, in Spalte E steht:
+---+-------+-------+-------+-------+-----------+
| | A | B | C | D | E |
+---+-------+-------+-------+-------+-----------+
| 1 | 225-1 | 225-2 | 225-3 | 225-4 | 225-final |
| 2 | F | EP | C | | C |
| 3 | A | | | | A |
| 4 | W | D | W | F | F |
| 5 | EP | C | | | C |
+---+-------+-------+-------+-------+-----------+
Ich habe bereits die lookup
Funktion entdeckt, die mich anscheinend näher an mein Ziel bringt. So LOOKUP("X",A2:D2)
erhalte ich beispielsweise die höchste (d. h. letzte im Alphabet) nicht leere Spalte für einen bestimmten Studenten. Bei den obigen Daten würde ich eine Ausgabe wie die folgende erhalten:
+---+-------+-------+-------+-------+-----------+
| | A | B | C | D | E |
+---+-------+-------+-------+-------+-----------+
| 1 | 225-1 | 225-2 | 225-3 | 225-4 | 225-final |
| 2 | F | EP | C | | F |
| 3 | A | | | | A |
| 4 | W | D | W | F | W |
| 5 | EP | C | | | EP |
+---+-------+-------+-------+-------+-----------+
Die Probleme hierbei sind folgende:
Anstatt des höchsten nicht leeren Spaltenwerts möchte ich eigentlich den niedrigsten. Studenten, die ein D, F, W, EP oder EF erhalten, können die Klasse ersetzen und werden (hoffentlich) bei einem zukünftigen Versuch besser abschneiden. Ich möchte den letzten Versuch erfassen, der kein W, EP oder EF ist (siehe unten). Beachten Sie, dass dies nicht immer eine bessere Note ist – wir hatten Studenten, die ein D erhielten, die Klasse ersetzen und dann ein F erhielten. Ich würde das F erfassen wollen.
Ein Problem, das dies kompliziert, ist, dass Studierende möglicherweise eine Note von EP oder EF erhalten, die nicht berücksichtigt werden sollte und bei meinem derzeitigen Ansatz die höheren Buchstabennoten ersetzt und ein F ersetzen würde, wenn ich es rückgängig machen könnte
lookup
– diese zeigen an, dass ein Studierender einen Notfallrücktritt hatte, entweder weil er den Kurs bestanden oder nicht bestanden hat. Ich denke, ich könnte alle EP- und EF-Werte durch WP oder WF ersetzen, um die Dinge zu vereinfachen. Wenn sich dies auf Ihre Antwort auswirkt, beachten Sie dies bitte!
Antwort1
Ausgehend von Ihrer ersten Matrix scheinen Sie an der letzten nicht leeren Zelle in dieser Zeile interessiert zu sein. Unter der Bedingung dürfen sie weder gleich noch EP
sein . Ist das eine korrekte Annahme? Wenn ja, verwenden Sie Folgendes:EF
W
Formel in E2
:
=INDEX(A2:D2,,AGGREGATE(14,3,(A2:D2<>"")*(A2:D2<>"W")*(A2:D2<>"EP")*(A2:D2<>"EF")*(COLUMN(A2:D2)),1))
Runterziehen....
Wenn das nicht das ist, was Sie wollen, können Sie mir bitte sagen, welche Einschränkungen es gibt? Momentan erklären Sie manchmal, dass Sie nach dem letzten Wert suchen, und geben am Ende die Einschränkungen an.
BEARBEITEN:
Wie funktioniert das?
AGGREGATE
erhält die höchste Zahl (gemäß Parameter 14), die aus der Gleichung zurückgegeben wird (A2:D2<>"")*(A2:D2<>"W")*(A2:D2<>"EP")*(A2:D2<>"EF")*(COLUMN(A2:D2)
, die ein Array aus Einsen und Nullen basierend auf allen angegebenen Regeln zurückgibt, multipliziert mit der jeweiligen Spaltennummer. Das Ergebnis mit der höchsten Spaltennummer ist der qualifizierende Wert.
Diese größte Zahl wird dann als Spaltenparameter in der INDEX
Funktion verwendet.