Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aufsteigende Spalte - Dichtester Wert

Aufsteigende Spalte - Dichtester Wert
09.04.2016 15:00:03
kaleb
Hallo!
Habe Ähnliches wie im Betreff gefunden, aber es traf nicht ganz den Punkt.
Ich suche aus einer Spalte einen Wert, der am dichtesten an meinem gesuchten Wert liegt, und zwar OHNE Hilfspalte:
Reduziertes Beispiel:
Gesuchter Wert: 12
Spalte
5
7
13
4
21
Die Lösung wäre 13.
Der SVERWEIS funktioniert nur mit aufsteigend sortierten Werten und liefert auch dann nur den nächst kleineren Wert.
Auch mit den VERGLEICH-, und VERWEIS-Funktionen hatte ich bisher keinen Erfolg.
Es ginge mit den MINIMA der ABSoltuen Differenzen, doch dann bräuchte ich wieder eine Hilfsspalte :/. Ich finde keinen Weg, von jedem Wert einer Spalte (z.B. A1:A7) jeweils den gleichen Wert abzuziehen.
Dazu soll noch ein VERWEIS kommen, also
Spalte 1 Spalte 2
A......|.......5
B......|........7
C......|.......13
D......|........4
E......|.......21
Gesucht: Wert am dichtesten an 12
Ausgabe: C
Erschien mir einfach, war es dann aber nicht, tüftele schon Stunden ...
Wer kan mir helfen?
Gruß,
Kaleb

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufsteigende Spalte - Dichtester Wert
09.04.2016 15:26:30
Hajo_Zi
Hallo Kaeleb,
es mag ja sein das Formelmenschen eine kürzere Formel finden.

Tabelle1
 AB
23513
247 
2513 
264 
2721 

verwendete Formeln
Zelle Formel Bereich N/A
A23=5*(TYP(XFB23))  
B23{=WENN(12-MIN(MAX(WENN(A23:A27<=12;A23:A27));MIN(WENN(A23:A27>=12;A23:A27)))<MAX(MAX(WENN(A23:A27<=12;A23:A27));MIN(WENN(A23:A27>=12;A23:A27)))-12;MIN(MAX(WENN(A23:A27<=12;A23:A27));MIN(WENN(A23:A27>=12;A23:A27)));MAX(MAX(WENN(A23:A27<=12;A23:A27));MIN(WENN(A23:A27>=12;A23:A27))))}$B$23 
A26=4*(TYP(XFB26))  
A27=21*(TYP(XFB27))  
{} Matrixformel mit Strg+Umschalt+Enter abschließen
Matrixformeln sind durch geschweifte Klammern {} eingeschlossen
Diese Klammern nicht eingeben!!

Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 22.01 einschl. 64 Bit



Anzeige
AW: Aufsteigende Spalte - Dichtester Wert
09.04.2016 17:16:08
kaleb
Hallo Hajo!
Besten Dank für Deine Antwort!Offenbar funktioniert sie, aber in meinem Fall wäre es trotz 11 Spalten und 37 Zeilen beinahe einfacher gewesen, den Wert mit den eigenen Augen 'rauszusuchen, aber nichts gegen Deine Lösung!Don't get me wrong!
Ein anderer User namens WF hat mir folgende Lösung vorgeschlagen. Da lohnt sich der Aufwand:
Zitat:
" ...der gesuchte Wert steht in B1
{=MIN(WENN(ABS(A1:A99-B1)=MIN(ABS(A1:A99-B1));A1:A99))}"
Klappt wunderbar!
Nochmals besten Dank an Dich, Hajo, und an alle anderen!
Schönes WE!
Kaleb

AW: Aufsteigende Spalte - Dichtester Wert
09.04.2016 17:35:04
kaleb
Hallo Hajo!
Im konkreten Fall kan man das Ganze noch in einen Verweis packen:
={VERWEIS(MIN(WENN(ABS(C53:C57-C52)=MIN(ABS(C53:C57-C52));C53:C57));C53:C57;B53:B57)}
Toll, was?

Anzeige
AW: Aufsteigende Spalte - Dichtester Wert
09.04.2016 17:50:35
kaleb
Alle guten Dinge sind DREI,
zum letzten Code noch die Datei!
Reimt sich sogar!
https://www.herber.de/bbs/user/104861.xlsx
Musst 'runterscrollen bis A52, damit es auf meinen letzten Code passt!

Näherung - kleine Arrayformel
09.04.2016 16:47:57
WF
Hi,
der gesuchte Wert steht in B1
{=MIN(WENN(ABS(A1:A99-B1)=MIN(ABS(A1:A99-B1));A1:A99))}
WF

AW: Näherung - kleine Arrayformel
09.04.2016 17:07:39
kaleb
Hi WF!
Wenn Du eben aus der Ferne einen Erleichterungsseufzer gehört hast, dann war ich das ... der Seufzer muss über den ganzen Planeten gehallt sein ...
War echt spannend, als ich den Code eingab und die Array-Tasten gedrückt habe - Ich dachte:"Na, was wird jetzt in der Zelle erscheinen?" Und baff - da war's!
Also: Besten Dank, Mann!
Ich habe den Code schon mal irgendwo gesehen, konnte ihn aber nicht gleich auf meinen Fall transferieren, wohl weil mein Hirn schon so verkrampft war, dass ich den Wald vor Bäumen nicht mehr gesehen habe.
Zum Glück gibt es ja Foren mit hilfsbereiten Menschen ...
Trotzdem muss ich bemängeln, dass Excel keine leichtere Formel für sowas hat - aber Deine ist ja schon SEHR überschaubar ...
Danke, danke, danke - Problem gelöst!

Anzeige
AW: Näherung - kleine Arrayformel
09.04.2016 17:18:45
kaleb
Hi WF!
Wenn Du eben aus der Ferne einen Erleichterungsseufzer gehört hast, dann war ich das ... der Seufzer muss über den ganzen Planeten gehallt sein ...
War echt spannend, als ich den Code eingab und die Array-Tasten gedrückt habe - Ich dachte:"Na, was wird jetzt in der Zelle erscheinen?" Und baff - da war's!
Also: Besten Dank, Mann!
Ich habe den Code schon mal irgendwo gesehen, konnte ihn aber nicht gleich auf meinen Fall transferieren, wohl weil mein Hirn schon so verkrampft war, dass ich den Wald vor Bäumen nicht mehr gesehen habe.
Zum Glück gibt es ja Foren mit hilfsbereiten Menschen ...
Trotzdem muss ich bemängeln, dass Excel keine leichtere Formel für sowas hat - aber Deine ist ja schon SEHR überschaubar ...
Danke, danke, danke - Problem gelöst!

Anzeige
AW: Näherung - kleine Arrayformel
09.04.2016 17:29:30
kaleb
Ach so, habe Deine Formel noch in einen VERWEIS gepakt, damit gleich der Buchstabe des Ergebisvektors ausgegeben wird, also auf Deinen Code bezogen:
Gesuchter Wert B1
Ergebnisvektor Spalte C,
das ganze auch als Array:
={VERWEIS(MIN(WENN(ABS(A1:A99-B1)=MIN(ABS(A1:A99-B1));A1:A99));A1:A99-B1;C1:C99)}

normaler INDEX / VERGLEICH
09.04.2016 17:53:13
WF
Hi,
{=INDEX(C:C;VERGLEICH(MIN(WENN(ABS(A1:A99-B1)=MIN(ABS(A1:A99-B1));A1:A99));A:A;0))}
WF

AW: normaler INDEX / VERGLEICH
09.04.2016 17:55:53
kaleb
Top, wieder was gelernt!
Bin für jede Variation dankbar, lieber eine Formel zu viel als eine zu wenig!
Danke, danke, danke ...

AW: es gibt weitere alternative "Variationen" ...
10.04.2016 10:10:37
...
Hallo kalab,
... u.a. auch solche die keinen spez. Matrixformelabschluss benötigen.
Dazu hab ich jedoch eine kleine Beispielvariation vorgenommen, wo der nächste Wert nur innerhalb eines Bereiches (z.B. A11:A19) gesucht werden soll. Vergleichswert steht auch in B1. In E1 die (entsprechend der Bedingungsänderung angepasste Formel von WF) und in E2:E3 zwei {}-freie Alternativen (deren es sicher auch noch mehr gibt)
 ABCD
1 12 e
2   e
3   e
4    
5    
6    
7    
8    
912,3 v 
1011,8 w 
11    
12    
135 a 
147 b 
1513 c 
164 d 
1711,5 e 
1812,6 f 
19    
2011,9 x 
2112,1 y 
22    

Formeln der Tabelle
ZelleFormel
D1{=INDEX(C:C;VERGLEICH(MIN(WENN(ABS(A11:A19-B1)=MIN(ABS(A11:A19-B1)); A11:A19)); A11:A19;0)+10)}
D2=INDEX(C:C;AGGREGAT(15;6;ZEILE(A11:A19)/(ABS(A11:A19-B1)=AGGREGAT(15;6;ABS(A11:A19-B1); 1)); 1))
D3=VERWEIS(9;1/(ABS(A11:A19-B1)=AGGREGAT(15;6;ABS(A11:A19-B1); 1)); C11:C19)
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Anzeige
AW: es gibt weitere alternative "Variationen" ...
10.04.2016 14:14:39
kaleb
Hallo Werner!
Da bin ich ja bestens versorgt und auch für "verschachtelte" Tabellen gewappnet!
Die AGGREGAT-Funktion kannte ich zuvor auch noch nicht - interessant!
So gesehen bietet Excel schon eine Menge ...
Danke, danke, danke für Dein Coaching + schönen Sonntag!
kaleb

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige