Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Lokales Maxima in automatisch erkannten Bereichen
#1
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


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 8,97 KB / Downloads: 6)
Antworten Top
#2
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
Antworten Top
#3
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


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 16,32 KB / Downloads: 3)
Antworten Top
#4
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
Antworten Top
#5
Funktioniert, vielen Dank Blush
Antworten Top
#6
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()))
Antworten Top
#7
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
Antworten Top
#8
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
Antworten Top
#9
Thumbs Up 
Hi Elex,

klappt wieder, vielen Dank. Smile :97:
Antworten Top
#10
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
Antworten Top


Gehe zu:


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