14.01.2021, 13:28
Hallo zusammen,
ich möchte schon seit längerem eine Automatisierung in Excel umsetzen, weiß aber leider nicht wie ich das am besten machen soll. Daher hoffe ich hier auf Hilfe :)
Beispiel:
Ich habe eine Liste von 2455 Werten in Spalte B, beginnend mit Zeile 3. Diese sind nicht aufsteigend sortiert, und bewegen sich in einem Bereich von -0,011 bis 88,754 (wobei die Negativwerte eigentlich zu vernachlässigen sind). Diese Rohdaten besitzen dabei relativ viele Nachkommastellen. Nun hätte ich gerne, dass Excel mir automatischen den Wert x ausliest und mir die Zeile, in welchem dieser Wert steht, wiedergibt. Wert x hängt von zwei Bedingungen ab:
Dieser sieht wie folgt aus: =KKLEINSTE(B:B;ZÄHLENWENN(B:B;"<"&I24)+ZÄHLENWENN(B:B;I24+MIN(ABS(I24-KKLEINSTE(B:B;HÄUFIGKEIT(B:B;I24)+{0.1}))))) // I24 ist hierbei der Bezug zu 9,00
In meinem Beispiel wird nun "leider" der Wert aus Zeile 1179 ausgegeben. Nach manueller Suche zeigt sich, der erste Anstieg in Richtung 9,0 findet in den Zeilen 274 und 275 statt:
Zeile: 274 -> Wert: 8,904568 -> Differenz: 9,0 - 8,904568 = 0,0954320000000006
Zeile: 275 -> Wert: 9,035229 -> Differenz: 9,035229 - 9 = 0,0352289999999993 -> ~0,035 < 0,095 -> Zeile 275 maßgebend
Um das ganze etwas zu veranschaulichen Füge ich einen Screenshot meines Beispiels mit an. In diesem habe ich ein Diagramm eingebunden, welches den steigenden und fallenden Verlauf der Werte darstellt.
Wichtig:
Über Hilfe und Anregungen wäre ich echt froh!
Besten Dank :)
ich möchte schon seit längerem eine Automatisierung in Excel umsetzen, weiß aber leider nicht wie ich das am besten machen soll. Daher hoffe ich hier auf Hilfe :)
Beispiel:
Ich habe eine Liste von 2455 Werten in Spalte B, beginnend mit Zeile 3. Diese sind nicht aufsteigend sortiert, und bewegen sich in einem Bereich von -0,011 bis 88,754 (wobei die Negativwerte eigentlich zu vernachlässigen sind). Diese Rohdaten besitzen dabei relativ viele Nachkommastellen. Nun hätte ich gerne, dass Excel mir automatischen den Wert x ausliest und mir die Zeile, in welchem dieser Wert steht, wiedergibt. Wert x hängt von zwei Bedingungen ab:
- Wie erwähnt sind die Rohdaten nicht sortiert, d.h. sie steigen und fallen. Der Wert x soll aus dem ersten Anstieg der Werte entnommen werden
- Der Wert x soll der Wert mit der geringsten Abweichung zu 9,00 sein. Aber, wie in 1. formuliert, eben nicht aus allen 2455 Werten sondern aus dem ersten Anstieg der Werte von 0 -> 9
Dieser sieht wie folgt aus: =KKLEINSTE(B:B;ZÄHLENWENN(B:B;"<"&I24)+ZÄHLENWENN(B:B;I24+MIN(ABS(I24-KKLEINSTE(B:B;HÄUFIGKEIT(B:B;I24)+{0.1}))))) // I24 ist hierbei der Bezug zu 9,00
In meinem Beispiel wird nun "leider" der Wert aus Zeile 1179 ausgegeben. Nach manueller Suche zeigt sich, der erste Anstieg in Richtung 9,0 findet in den Zeilen 274 und 275 statt:
Zeile: 274 -> Wert: 8,904568 -> Differenz: 9,0 - 8,904568 = 0,0954320000000006
Zeile: 275 -> Wert: 9,035229 -> Differenz: 9,035229 - 9 = 0,0352289999999993 -> ~0,035 < 0,095 -> Zeile 275 maßgebend
Um das ganze etwas zu veranschaulichen Füge ich einen Screenshot meines Beispiels mit an. In diesem habe ich ein Diagramm eingebunden, welches den steigenden und fallenden Verlauf der Werte darstellt.
Wichtig:
- die Position der Rohdaten darf nicht verändert werden, sprich keine Sortierung o.ä.
- hier handelt es sich wirklich nur um ein Beispiel. Im tatsächlichen Anwendungsfall beginnt der Anstieg der Werte nicht zwingend wie hier bei etwa Zeile ~160-170. Das heißt eine Begrenzung der Funktion auf den entsprechenden Zeilenbereich in welchem hier der Anstieg stattfindet, würde mich nicht zum Ziel bringen, da dies sonst in unterschiedlichen Anwendungsfällen wieder manuell angepasst werden müsste
- schön wäre, wenn sich die Funktion allgemein auf B:B bezieht, da die Liste u.U. auch mehr als 2455 Werte umfassen kann
Über Hilfe und Anregungen wäre ich echt froh!
Besten Dank :)