Hallo zusammen,
ich habe folgendes Problem:
Es gibt eine Spalte mit 50 Zellen. Dort sind negative sowie positive Werte vorhanden.
Bsp:
Spalte:
-10
-20
-30
50
30
-20
-30
100
60
-300
Nun möchte ich gerne anhand einer Fornel ermitteln, wie viele Zellen hintereinander negativ sind bis eine positiv Zahl erscheint. Wenn nach der positiven Zahl erneut ein negativer Wert erscheint soll wieder von 0 angefangen zu zählen.
Bei dem Bsp. wäre das Ergebnis für negative Werte also:
3
2
1
Da sich die Daten täglich verändern, kann ich da leider nicht statisch mit einer zählenwenn Funktion dran gehen.
Habt ihr eine Idee man das Problem lösen könnte?
Besten Dank.
Viele Grüße
Sven
Hi
Code:
____|_A_|_B|_C|_D|_E|
1| -5| 0| | | 3|
2| -6| 0| | | 1|
3| -1| 0| | | 2|
4| 2| | | | 3|
5| -4| 1| | | 1|
6| 0| | | | |
7| -4| 2| | | |
8| -3| 2| | | |
9| 2| | | | |
10| 1| | | | |
11| -1| 4| | | |
12| -5| 4| | | |
13| -3| 4| | | |
14| 1| | | | |
15| -1| 5| | | |
16| 0| | | | |
Code:
B1 =WENN(A1<0;ZEILE(A1)-ZÄHLENWENN($A$1:A1;"<0");"")
E1 =WENNFEHLER(1/(1/(ZÄHLENWENN(B:B;INDEX(B:B;AGGREGAT(15;6;ZEILE($A$1:$A$100)/($B$1:$B$100<>"")/(VERGLEICH($B$1:$B$100;$B$1:$B$100;0)=ZEILE($B$1:$B$100));ZEILE(A1))))));"")
Gruß Elex
Hallo Elex,
das ganze sieht schon etwas komplex aus. Anscheinend gibt es wohl keine einfachere Lösung.
Hast du denn noch eine Idee wie ich je Zählung mir auch noch das Minimum anzeigen lassen kann? In deinem Beispiel wären das jetzt für die erste Scheibe -6, 2. -4 und 3. -4.
Grüße
Sven
Hi
dann versuch es mal so.
Code:
____|___A__|_B_|_C|______D_____|_E|_F_|_G_|__H_|
1|Werte | 0| |Auswertung: | | | | |
2| 1| 1| | | | | |Min |
3| -1|B1 | |mit Formel | | 3| 5| -2|
4| -1|B1 | | | | 7| 8| -4|
5| -2|B1 | | | | 10| 10| -3|
6| 2| 1| | | | 12| 13| -5|
7| -4|B2 | | | | 16| 16| -1|
8| -4|B2 | | | | | | |
9| 2| 1| | | | | | |
10| -3|B3 | | | | | | |
11| 1| 1| | | | | | |
12| -1|B4 | | | | | | |
13| -5|B4 | | | | | | |
14| 1| | | | | | | |
15| 1| 1| | | | | | |
16| -1|B5 | | | | | | |
17| 0| | | | | | | |
Code:
B1 =(A2<0)*1
B2 =WENN(VORZEICHEN(A2)>-1;WENN(VORZEICHEN(A3)>-1;"";1);"B"&SUMME($B$1:B1))
Code:
F3 =VERGLEICH("B"&ZEILE(A1);B:B;0)
G3 =VERWEIS("B"&ZEILE(A1);B:B;ZEILE(B:B))
H3 =MIN(BEREICH.VERSCHIEBEN($A$1;F3-1;;G3-F3+1))
a) Mit Excel 365 und
b) eingeschalteter Iteration (Anzahl Iterationen mindestens Anzahl der Daten!) funktioniert folgende 1-Formel-Lösung unter Verwendung von
c) Autofilter "C entspricht nicht 0":
A:A: Deine lückenlosen Daten
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))))
In Spalte D stehen dann als Minuszahlen die Anzahl Minuszahlen hintereinander, als Pluszahlen die Anzahl Pluszahlen.
Vielen Dank. Eure Antworten haben mir die Lösung gebracht. :)
Wie würde denn ein VBA-Code in diesem Zusammenhang aussehen?
Nein habe ich nicht übersehen.
Die von dir markierte Antwort zeigt mir jetzt kein VBA-Code.
Verstehst du überhaupt VBA-Code ?