Excel - Finden Sie lokale Maxima mit Mehrzellenspitzen

6

Ich möchte ein lokales Maxima in einem großen Dataset mit Excel finden, und ich versuche, den vorherigen und den nächsten Wert zu vergleichen, um sicherzustellen, dass sie kleiner sind.

=IF(AND(C4>C3,C4>C5),"Local maxima","")

Das Problem bei dieser Formel ist jedoch, dass der Peak, wenn er sich über mehrere Reihen erstreckt, dies nicht als lokales Maxima fängt. Und das trotz der Tatsache, dass es sich um lokale Maxima handelt, da die Werte anfangen zu fallen.

(Wenn Sie wissen möchten, warum die lokalen Maxima in einem Spektrum von Spektraldaten ermittelt werden sollen)

Highace2
quelle

Antworten:

2

Du bist auf dem richtigen Weg! Sie können es mit ein paar Hilfssäulen machen. Siehe die Grafik unten.

Die erste Helfer-Spalte "Steigung" verwendet die SLOPE-Funktion von Excel. Es berechnet die Steigung zwischen zwei benachbarten Punkten.

Die 2. Helfer-Spalte "für Labels" prüft, ob ein Übergang von einer positiven zur negativen Steigung erfolgt. Ein Übergang von einer positiven zu einer negativen Steigung wird mit "max" bezeichnet.

Dann können Sie das Diagramm mit diesen Maxima mit einem Makro wie folgt beschriften:

Sub CustomLabels()

   Dim i, myCount, pt
   ActiveSheet.ChartObjects("myChart").Activate
   myCount = ActiveChart.SeriesCollection(1).Points.Count

   For i = 1 To myCount
       ActiveChart.SeriesCollection(1).Points(i).ApplyDataLabels
       ActiveChart.SeriesCollection(1).Points(i).DataLabel.Text = Range("D" & i + 1).Value
   Next i

End Sub

enter image description here

F106dart
quelle
0

Eine andere Lösung, die ich dieser Frage hinzufügen möchte, ist folgende. Es kann praktisch sein, wenn die Datenmenge verrauscht ist oder viele X- und Y-Werte enthält. Erstellen Sie eine Tabelle mit "Als Tabelle formatieren" und gehen Sie wie folgt vor:

Spalte D (Name in Zeile1) als X

Spalte E (Name in Zeile1) als Y

Neue Spalte F (Name in Zeile1) als Steigung und Flash füllen die Spalte aus.

=slope(B2:B3,A2:A3)

Neue Spalte G (Name "Löser" in Zeile1), beginnen in Zeile 7

=IF(AND(F214>0,E214=MAX(E209:E219),E214>$I$1),D214,"")

Zelle I1: Schwellenwert

Es sucht nach dem lokalen Maximum von Y (5 Zeilen auf und ab) mit einer positiven Steigung und einem Y-Wert oberhalb einer bestimmten Schwelle. Bei Erfolg wird der X-Wert zurückgegeben.

Ein Beispiel, bei dem die ausgewählte Zelle X (D214) 1.0004397 zurückgibt

Example

MKZ
quelle