ich suche eine Funktion unter Excel, mit der ich
aus einer Datenreihe, den Wert heraussuchen kann,
der am wenigsten von einem angegeben Wert abweicht.
Also:
GeringsteAbweichung(1,2,3,4,5,6,7,8,9;2.1) soll 2
ergeben.
Ich habe dazu nichts gefunden. Fällt jemandem etwas
ein?
Danke
Hartmut Brüning
Hartmut Brüning schrieb:
Du könntest eine benutzerdefinierte Funktion folgenden Aufbaus einsetztn:
Public Function GeringsteAbweichung(Datenreihe As Range, _
Wert As Double) As Double
Dim Zelle As Range, dblDiff As Double
dblDiff = WorksheetFunction.Max(Datenreihe)
For Each Zelle In Datenreihe
If Abs(Zelle.Value - Wert) < dblDiff Then
dblDiff = Abs(Zelle.Value - Wert)
GeringsteAbweichung = Zelle.Value
End If
Next
End Function
--
Mit freundlichen Grüssen
Thomas Ramel
- MVP für Microsoft-Excel -
mit Suchwert (2.1) in A1:
=VERWEIS(A1+MIN(ABS({1;2;3;4;5;6;7;8;9}-A1));{1;2;3;4;5;6;7;8;9})
sind die Vergleichswerte ( {1;2;3;4;5;6;7;8;9} ) in der Tabelle eingetragen (zB in
A2:A10), müssen diese aufsteigend sortiert sein und die Eingabe der Formel muss mit
der Tastenkombination:
Ctrl+Shift+Enter abgeschlossen werden:
=VERWEIS(A1+MIN(ABS(A2:A10-A1));A2:A10)
mfg Peter
--
MVP für MS-Excel
---------------------------
"Hartmut Brüning" <news.h....@online.de> schrieb im Newsbeitrag
news:3DA1971E...@online.de...
Peter Dorigo schrieb:
>
> mit Suchwert (2.1) in A1:
> =VERWEIS(A1+MIN(ABS({1;2;3;4;5;6;7;8;9}-A1));{1;2;3;4;5;6;7;8;9})
>
> sind die Vergleichswerte ( {1;2;3;4;5;6;7;8;9} ) in der Tabelle eingetragen (zB in
> A2:A10), müssen diese aufsteigend sortiert sein und die Eingabe der Formel muss mit
> der Tastenkombination:
> Ctrl+Shift+Enter abgeschlossen werden:
> =VERWEIS(A1+MIN(ABS(A2:A10-A1));A2:A10)
Schöne Lösung :-)
An der MIN(ABS())-Formel habe ich auch herumstudiert; bis zur minimalen
Differenz war ich auch schon vorgestossen. Das Ganze noch in den VERWEIS()
verpackt funktioniert dann.
"Thomas Ramel" <t.r...@mvps.org> schrieb im Newsbeitrag
news:3DA1F87C...@mvps.org...
> Grüezi Peter
>
[...]
> Schöne Lösung :-)
vielen Dank! :-)
> An der MIN(ABS())-Formel habe ich auch herumstudiert; bis zur minimalen
> Differenz war ich auch schon vorgestossen. Das Ganze noch in den VERWEIS()
> verpackt funktioniert dann.
Die Lösung hab' ich auch erst im zweiten Anlauf gefunden, nachdem ich meine erste
Formel in den Müll werfen musste, weil sie nur mit Suchwerten >= dem kleinsten
Vergleichswert funktionierte und ich keine WENN() - Konstruktionen und keine
überlange Formeln mag.