Clever-Excel-Forum

Normale Version: Lokales Maxima in automatisch erkannten Bereichen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe folgendes Problem: ich habe eine Spalte mit tausenden Stückzahlen, wobei jede Zeile eine Minute darstellt. Nun möchte ich mir immer die höchste Zahl vor einer 0 und die Anzahl ausgeben lassen.
Ein Beispiel vereinfacht die Erklärung:
40,25,30,20,10,0,0,0,0,5,10,5,15,20,10,15,10,0,0...

Die Zahlen stellen einen Stückzahlverlauf dar und ich möchte nun immer die höchste Zahl haben, bevor nichts mehr produziert wurde und die Anahl der Minuten.
In diesem Beispiel sollte mir also die 30 ausgegeben werden, weil danach nur noch kleinere Zahlen bis zu einer 0 kommen und davor eine kleinere Zahl steht. Ebenso sollte Die Anzahl an Minuten angezeigt werden. Hier wären dies 3 Minuten, aufgrund der 3 Zeilen bis zur ersten Null (30,20,10).
In Spalte B sollte mir dann auf Höhe der ersten 0 die 30 und in Spalte C die 3 angezeigt werden. 
A   B   C
..   ..   ..
0   30  3
..   ..   ..
0   15  2

Im Anhang findet ihr auch noch ein kurzes Beispiel, wodurch es eigentlich klar werden sollte.
Ich hoffe, dass ich es halbwegs verständlich erklären konnte. Ich wäre für jede Hilfe dankbar! Blush 

Liebe Grüße
Hi

B2    =WENNFEHLER(INDEX(A:A;ZEILE()-C2;);"")
C2    =WENN((A2=0)*(A1<>0);ZEILE()-MAX(($A$2:A2<$A$3:A3)*ZEILE($A$3:A3));"")  'shift+strg+Enter

Gruß Elex
Hallo Elex, vielen Dank für deine schnelle Antwort. Blush

Die Formeln funktionieren soweit, bis auf eine kleine Sache.
Zur Erklärung habe ich die Zahlen der Beispiel-Datei leicht abgeändert und den Stückzahlverlauf graphisch dargestellt.
In Zelle C10 sollte nun eine 2 gezählt werden, da ab diesem Zeitpunkt ein negativer Verlauf, bis hin zu 0, erfolgt. 

Verstehst du was ich meine ? 
ich weiß leider nicht, was ich dafür in deiner Formel umstellen müsste...

Liebe Grüße
Hi

Versuch es mal mit der Formel.
C2     =WENN((A2=0)*(A1<>0);ZEILE()-MAX(($A$1:A1<=$A$2:A2)*ZEILE($A$2:A2));"")   'shift+strg+enter

Die Formel von B braucht kein "shift+...."

Gruß Elex
Funktioniert, vielen Dank Blush
Hi

Ich habe selbst noch ein paar Beispiele getestet. Eventuell ist hier eine Hilfsspaltenlösung angebracht.

____|_A|_B|_C|_D_|_E|
   1|  |  |  |   |  |
   2| 5|  |  |  2|  |
   3| 7|  |  |  3|  |
   4| 7|  |  |  4|  |
   5| 7|  |  |  5|  |
   6| 5|  |  |   |  |
   7| 5|  |  |   |  |
   8| 4|  |  |   |  |
   9| 0| 7| 4|   |  |
  10| 0|  |  |   |  |
  11| 2|  |  | 11|  |
  12| 9|  |  | 12|  |
  13| 6|  |  |   |  |
  14| 9|  |  | 14|  |
  15| 3|  |  |   |  |
  16| 8|  |  | 16|  |
  17| 9|  |  | 17|  |
  18| 6|  |  |   |  |
  19| 5|  |  |   |  |
  20| 4|  |  |   |  |
  21| 0| 9| 4|   |  |
  22| 0|  |  |   |  |

B2    =WENN((A2=0)*(A1<>0);INDEX(A:A;MAX($D$2:D2););"")
C2    =WENN(ISTZAHL(B2);ZEILE()-MAX($D$2:D2);"")
D2    =WENN(ISTZAHL(D1)*(A2=A1);ZEILE();WENN((A2<=A1);"";ZEILE()))
Hi Elex,

bei mir klappt es mit der vorherigen Formel eigentlich gut. Trotzdem vielen Dank!
Weißt du zufällig auch, wie ich den Mittelwert jeweils zwischen den 0 en ermitteln kann?
Ich habe versucht deine Formel abzuändern, leider ohne Erfolg.

Also bezogen auf dein Beispiel Mittelwert(A2:A8); Mittelwert(A11:A20) ..
ebenfalls automatisiert für die ganze Spalte und es sollte auf der gleichen Höhe wie der Maximalwert sehen. (A9; A21...)

Liebe Grüße
Hi


Zitat:bei mir klappt es mit der vorherigen Formel eigentlich gut.
Hast du es auch mal mit meinen letzten Beispieldaten versucht? Aber wenn es bisher klappt ist es ja ok.


Die Mittelwertformel in D2.
PHP-Code:
B2    =WENN((A2=0)*(A1<>0);INDEX(A:A;MAX($E$2:E2););"")
C2    =WENN(ISTZAHL(B2);ZEILE()-MAX($E$2:E2);"")
D2    {=WENN(ISTZAHL(B2);MITTELWERT(A1:INDEX(A:A;MAX(2;($A1:A$1=0)*ZEILE($A$2:A2))));"")}
E2    =ZEILE()*((A2>A1)+((E1>0)*(A2=A1))) 
Gruß Elex
Hi Elex,

klappt wieder, vielen Dank. Smile :97:
Hi Elex,

ich komme mit einer weiteren Formel in diesem Datensatz nicht weiter, könntest du mir vielleicht nochmal helfen?
Ich würde gerne die Standardabweichung der 5 Werte oberhalb des lokalen Max. bestimmen.

Bsp:
A
0
0
0
5
6
1
2
5
6
7
9
4
2
1
0
0

Wüsstest du zufällig auch hier eine Lösung?

Liebe Grüße