Excel SCAN Funktion

Überblick

Mit der Excel SCAN-Funktion wird auf alle Werte eines Arrays eine LAMDBA-Funktion angewendet und anschließend werden dann alle Werte schrittweise aufsummiert. Im Ergebnis erhalten wir ein Array, welches jeden dieser Zwischenschritte ausgibt. 

Die SCAN Funktion steht aktuell nur in der Office 365 Insider Version zur Verfügung. 

Verwendungszweck / Rückgabewert

Scannt ein Array, indem eine Lambdafunktion auf jeden Wert angewendet wird, und gibt ein Array zurück, das über jeden Zwischenschritt verfügt.

Syntax

=SCAN([initial_value], array, lambda(accumulator, value))

Argumente

initital_value [optional] - Startwert. Wenn dieser nicht definiert ist, wird der erste Wert aus dem Array zum Startwert. D.h. in diesem Fall wird dieser erste Wert nicht durch die LAMBDA-Funktion verarbeitet.
array - Das Array mit Werten, die durch die LAMBDA-Funktion verarbeitet und aufsummiert werden
lambda - Die LAMBDA-Funktion hier hat eine spezielle Form und besteht einmal aus dem accumulator und dem value Parameter. Der accumulator repräsentiert das Zwischenergebnis aus dem vorhergehenden Berechnungsschritt oder anders gesagt den akkumulerenden Wert. Damit der accumulator arbeiten kann müssen die Werte aus dem Array value mit dem acculumator verrechnet werden.

AUFRUF von REDUCE

Es gibt zwei Wege die LAMBDA-Funktion in der SCAN-Funktion aufzurufen.
1) =LAMBDA(...) Zum Testen der LAMBDA-Funktion macht es Sinn diese zuerst in die Formel zu schreiben.
Bsp. =SCAN(;A5:C7;LAMBDA(a;v;a+v*2))

2) Abspeichern der LAMBDA-Funktion im Namensmanager und dann Aufruf über den definierten Namen.  
Bsp. =SCAN(;A5:C7;VERDOPPELN)

In beiden Fällen müssen keine Parameter angegeben werden, da diese vorher in der SCAN-Funktion übergeben werden.

Beispiele für SCAN

Logik - SCAN

Hier in dem Beispiel steht a für acculumator und v für value. Dem accumulator a wird der Wert v hinzugefügt a+v. Der initial value bzw. Startwert a1 ist hier 0. In der Beispieldatei sind die einzelnen Zwischenschritte zu sehen. a1 - a10 repräsentieren den anwachsenden accumulator und v1 - v9 sind die einzelnen Werte aus dem Array. Das Ergebnis aus der ersten Rechenschritt a1+v1 wird zum Ausgangswert a2 für den nächsten Rechenschritt, bis das Array vollständig abgearbeitet ist.  

Zu beachten

  • Wenn der Parameter initial_value nicht definiert ist, wird die LAMBDA-Funktion nicht auf den ersten Wert aus dem Array angewendet. Daher wird in der Regel der Startwert 0 gewählt.