Clever-Excel-Forum

Normale Version: Finden des nächsten Wertes
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich muss für eine Berechnung stets die Differenz aus zwei Zahlen (hier grün und blau) bilden und das Ergebniss daraufhin ausgeben (hier gelb). Dabei wird immer vom grünen Wert ausgegangen und der nächstliegende blau Wert wird davon abgezogen (das ganze dann im Betrag). Der blaue Wert kann jedoch wie auch hier sowohl oberhalb als auch unterhalb des grünen liegen und davon auch unterschiedlich weit entfernt sein. Gibt es eine Möglichkeit hierfür eine Formel zu erhalten die ich daraufhin für die komplette Ergebnisspalte verwenden kann?

Mein bisheriger Versuch ist leider nicht der beste.... G ist die grüne Spalte, C die blaue

=WENN(G44=" ";" ";ABS(G44-WENN(C44=" ";C45;C43)))

Hier überprüf ich schon mal, ob der grüne Wert vorhanden ist. Allerdings würde es eine endlose WENN-Schleife werden den blauen Wert zu finden, da dieser auch 20 oder 30 Zeilen entfernt sein kann.

[
Bild bitte so als Datei hochladen: Klick mich!
]

Würde mich freuen, wenn mir jemand helfen könnte.

Beste Grüße
Matthias

Hier noch der Screenshot.
edit: habe nicht richtig gelesen :)

lade selbst eine einfache Beispieldatei hoch :)
In der Datei ist die Gesuchte Zahl stets die "Distance to chlorophyll"-Spalte.
Aktuell wird da jeder Wert einzeln duch Subtraktion berechnet, aber das ist natürlich bei entsprechend vielen Dateien irgendwann nicht mehr einfach...
was bedeutet nächsliegend?

der die geringste Zeilendifferenz hat?
oder der, der die geringste Wertedifferenz hat?
Die geringste Zeilendifferenz führt hier automatisch zur geringsten Wertedifferenz. In der Tabelle sind peaks und lows aufgeführt und es soll berechnet werden wie weit ein peak vom nächstgelegenen low entfernt ist, egal ob der benachbarte Punkt überhalb oder unterhalb liegt.
Hallo Matthias,

zB so:
Code:
=WENN(E3=" ";" ";ABS(INDEX(C:C;AGGREGAT(15;6;ZEILE($C$3:$C$325)/((ABS(ZEILE($C$3:$C$325)-ZEILE())/($C$3:$C$325<>" "))=AGGREGAT(15;6;ABS(ZEILE($C$3:$C$325)-ZEILE())/($C$3:$C$325<>" ");1));1))-E3))
ich habe dir mal einen Lösungsvorschlag angehängt
habe es mit Zusatzspalten stehen lassen, damit es übersichtlicher ist, man kann diese auch in eine Formel zusammen fassen.