Excel-Durchschnittsfunktion

Zusammenfassung
Die Funktion Excel AVERAGE gibt den Mittelwert der als mehrere Argumente gelieferten Werte zurück. AVERAGE kann bis zu 255 einzelne durchschnitt in excel berechnen Argumente verarbeiten, die Zahlen, Zellbezüge, Bereiche, Arrays und Konstanten beinhalten können.

Zweck
Den Durchschnitt einer Gruppe von Zahlen ermitteln
Rückgabewert
Eine Zahl, die den Durchschnitt angibt.
Syntax
=Durchschnitt (Nummer1,[Nummer2], ….)
Argumente
number1 – Eine Zahl oder Zellenreferenz, die sich auf numerische Werte bezieht.
number2 – [optional] Eine Nummer oder Zellreferenz, die sich auf numerische Werte bezieht.
Gebrauchshinweise
Die Funktion AVERAGE gibt den Durchschnitt (arithmetisches Mittel) einer Gruppe von gelieferten Zahlen zurück.
Um den Durchschnitt zu berechnen, addiert Excel die Zahlen zusammen und dividiert sie durch die Gesamtzahl der Zahlen. Zum Beispiel gibt AVERAGE (2,4,6) 4 zurück.
Zahlen können als Zahlen, Bereiche, benannte Bereiche oder Zellbezüge angegeben werden, die numerische Werte enthalten. Bis zu 255 Nummern können geliefert werden.
Die Funktion AVERAGE ignoriert automatisch leere Zellen.

Durchschnitt der letzten 3 numerischen Werte
Excel-Formel: Durchschnitt der letzten 3 numerischen Werte
Allgemeine Formel
{=Durchschnitt(LOOKUP(LARGE(IF(ISNUMBER(data),ROW(data))),{1,2,3}),ROW(data), data))}}
Erläuterung
Um die letzten 3 numerischen Werte in einem Bereich zu mitteln, können Sie eine Array-Formel verwenden, die auf einer Kombination von Funktionen basiert, um die letzten n numerischen Werte in die AVERAGE-Funktion einzugeben. In dem gezeigten Beispiel lautet die Formel in D6:

{=Durchschnitt(LOOKUP(LARGE(IF(ISNUMBER(data),ROW(data)),{1,2,3}), ROW(data), data))}}
wobei „data“ der benannte Bereich B5:B13 ist.

Hinweis: Dies ist eine Array-Formel und muss mit Steuerung + Shift + Enter eingegeben werden.

Wie diese Formel funktioniert
Die AVERAGE-Funktion berechnet einen Durchschnitt der in einem Array dargestellten Zahlen, so dass fast die gesamte Arbeit in dieser Formel darin besteht, ein Array der letzten 3 numerischen Werte in einem Bereich zu erzeugen. Die IF-Funktion wird von innen nach außen eingesetzt, um Zahlenwerte zu „filtern“:

IF(ISNUMBER(data),ROW(data))
Die Funktion ISNUMBER gibt TRUE für numerische Werte und FALSE für andere Werte (einschließlich Leerzeichen) zurück, und die Funktion ROW gibt Zeilennummern zurück, so dass das Ergebnis dieser Operation eine Reihe von Zeilennummern ist, die numerischen Eingaben entsprechen:

{5;6;FALSE;8;9;10;FALSE;12;13}
Dieses Array geht in die LARGE-Funktion mit der Array-Konstante {1,2,3} für k. LARGE ignoriert automatisch die FALSE-Werte und gibt ein Array mit den größten 3 Zahlen zurück, die den letzten 3 Zeilen mit numerischen Werten entsprechen:

{13,12,10}
Dieses Array geht in die LOOKUP-Funktion als Nachschlagewert ein. Das Lookup-Array wird von der ROW-Funktion bereitgestellt, und das Ergebnis-Array ist der benannte Bereich „data“:

LOOKUP({13,12,10}, ROW(data), data)))
LOOKUP gibt dann ein Array mit entsprechenden Werten in „data“ zurück, das in AVERAGE eingegeben wird:

=DURCHSCHNITTLICH ({100,92,90})
Umgang mit weniger Werten
Wenn die Anzahl der numerischen Werte unter 3 fällt, gibt diese Formel den Fehler #NUM zurück, da LARGE nicht in der Lage ist, 3 Werte wie angefordert zurückzugeben. Eine Möglichkeit, dies zu handhaben, besteht darin, die fest programmierte Array-Konstante {1,2,3} durch ein dynamisches Array zu ersetzen, das mit INDIRECT wie diesem erstellt wurde:

Zeile(INDIRECT(„1:“&MIN(3,COUNT(data)))))
Hier wird MIN verwendet, um die Obergrenze des Arrays auf 3 oder die tatsächliche Anzahl der numerischen Werte einzustellen, je nachdem, welcher Wert kleiner ist.

Anmerkung: Ich bin auf chandoo.org auf diesen cleveren Ansatz gestoßen, in einer Antwort von Sajan auf eine ähnliche Frage.