Negative-Werte zählen (mit Unterbrechung)
#1
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
Top
#2
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
Top
#3
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
Top
#4
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))
Top
#5
Schau mal:


Angehängte Dateien
.xlsb   __minimal.xlsb (Größe: 10,28 KB / Downloads: 4)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#6
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.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#7
Vielen Dank. Eure Antworten haben mir die Lösung gebracht. :)

Wie würde denn ein VBA-Code in diesem Zusammenhang aussehen?
Top
#8
https://www.clever-excel-forum.de/Thread...#pid203646 übersehen ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#9
Nein habe ich nicht übersehen.

Die von dir markierte Antwort zeigt mir jetzt kein VBA-Code.
Top
#10
Verstehst du überhaupt VBA-Code ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste