Clever-Excel-Forum

Normale Version: Negative-Werte zählen (mit Unterbrechung)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Nicht alles, aber das meiste. Problematisch ist immer die Aufstellung der Codes.
Nur für Fortgeschrittene mit xl365 Insider: Ich beziehe mich auf meinen Beitrag #6 oben mit der Formel

C2: =WAHL(SPALTE(A1:B1);(VORZEICHEN(
A1:INDEX(A:A;ANZAHL(A:A)))<>VORZEICHEN(
A2:INDEX(A:A;ANZAHL(A:A)+1)))*VORZEICHEN(
A2:INDEX(A:A;ANZAHL(A:A)+1))*SEQUENZ(ANZAHL(A:A);;2);(
C1:INDEX(C:C;ANZAHL(A:A))=0)*(
D1:INDEX(D:D;ANZAHL(A:A))+
C1:INDEX(C:C;ANZAHL(A:A)))+VORZEICHEN(
A1:INDEX(A:A;ANZAHL(A:A))))

mit den 3 Einschränkungen a) xl365 b) Iteration c) anschließender Autofilter (nicht =FILTER()).
____________________________________

Die denkbare Abkürzung ... 

C2: =LET(
a;ANZAHL(A:A);
aa;VORZEICHEN(A1:INDEX(a:a;a));
ab;VORZEICHEN(A2:INDEX(a:a;a+1));
ac;C1:INDEX(C:C;a);
WAHL(SEQUENZ(;2);(aa<>ab)*ab*SEQUENZ(a;;2);(
ac=0)*(
D1:INDEX(D:D;a)+
ac)+aa))

funktioniert nicht. Der Grund ist folgender: LET speichert genau die Variablen zu Beginn einmalig statisch ab, deren Zellwerte über Iteration jedoch überhaupt erst entstehen sollen. Die Iteration wirkt also nicht in die LET()-Register (warum sollte sie es auch tun?).
____________________________________

Die Formel ... 

C2: =WAHL(SEQUENZ(;2);(aa<>ab)*ab*SEQUENZ(a;;2);(ac=0)*(D1:INDEX(D:D;a)+ac)+aa)

jedoch klappt mit den in C2: benannten Formeln ...

a: =ANZAHL(A:A)
aa: =VORZEICHEN(A1:INDEX(a:a;a))
ab: =VORZEICHEN(A2:INDEX(a:a;a+1))
ac: =C1:INDEX(C:C;a)

die bekanntlich nur ein anderes Sichtfenster auf die Zellformel darstellen. Sie sind insbesondere nicht schneller (es wird genauso oft und lange gerechnet) und insgesamt vom Speicherbedarf her nicht kürzer.
Wozu brauchst du VBA ?
Seiten: 1 2