Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1032to1036
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

Zahlenreihe

Zahlenreihe
25.12.2008 14:33:00
Ernst
Hallo Excel Forum
Kann mir jemand behilflich sein beim folgenden Problem:
Eine berechneter Zahlenwert soll einer Zahl (Reihe unten) zugeordnet werden und zwar immer der nächst gelegenen, z.B.: 130 wird dem Wert 125 zugeordnet.
X = 32, 40, 50, 65, 80 100, 125, 150, 200, 250, 300, 350, 400, 500, 600
Für eine Hilfe bin ich dankbar.
Mit freundlichen Grüßen
Ernst Dunkel

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Untergrenze
25.12.2008 15:42:00
WF
Hi Ernst,
130 steht in A1
=INDEX({32;40;50;65;80;100;125;150;200;250;300;350;400;500;600};VERGLEICH(130;{32;40;50;65;80;100; 125;150;200;250;300;350;400;500;600}))
Salut WF
Korrektur: ...VERGLEICH(A1;(...
25.12.2008 16:05:15
Original
oT
AW: Korrektur: ...VERGLEICH(A1;(...
25.12.2008 16:12:23
Ernst
Hallo WF
recht herzlichen Dank für die Weihnachtshilfe.
Ernst
AW: Zahlenreihe
25.12.2008 15:43:41
Roland
Hallo Ernst,
als Ansatz (in ein Modul):

Function DemNächstenWertZuordnen(dblInput As Double) As Long
Dim lngArr(), lngZ As Long
lngArr = Array(32, 40, 50, 65, 80, 100, 125, 150, 200, 250, 300, 350, 400, 500, 600)
If dblInput = lngArr(UBound(lngArr)) Then DemNächstenWertZuordnen = lngArr(UBound(lngArr)):  _
Exit Function
For lngZ = LBound(lngArr) To UBound(lngArr)
If dblInput  dblInput - lngArr(lngZ - 1) Then
DemNächstenWertZuordnen = lngArr(lngZ - 1)
Else
DemNächstenWertZuordnen = lngArr(lngZ)
End If
Exit Function
End If
Next
End Function



Sub Aufruf()
Dim dblSuch As Double
dblSuch = InputBox("Geben Sie die zu untersuchende Zahl ein")
MsgBox DemNächstenWertZuordnen(dblSuch)
End Sub


Kommst Du damit klar?
Weihnachtliche Grüße aus Berlin von
Roland Hochhäuser

Anzeige
AW: Zahlenreihe
25.12.2008 16:16:00
Ernst
Hallo Roland
Vielen Dank für die VBA-Lösung.
Wünsche Dir noch eine frohe Weihnachten.
Ernst aus Thun (Schweiz)
Zusatzfrage
25.12.2008 16:29:48
Ernst
Rolland
Habe noch eine Frage.
Wie müsste der Code lauten, wenn anstelle der InputBox die Zahl aus Zelle A10 der Tabelle 1 abgefragt wird?
AW: Zusatzfrage
25.12.2008 16:59:51
Roland
Hallo Ernst,
dann musst Du nur den Aufruf abändern:

Sub Aufruf()
Dim dblSuch As Double
dblSuch = ThisWorkbook.Worksheets(1).Range("A10").Value
MsgBox DemNächstenWertZuordnen(dblSuch)
End Sub


Gruß
Roland Hochhäuser

letzte Zusatzfrage
25.12.2008 17:10:53
Ernst
Hallo Rainer
Wie müsste der Zusatzcode lauten, ohne Box d.h., der Wert sollte in Zelle B1 der Tabelle 1 eingefügt werden.
Anzeige
AW: letzte Zusatzfrage
25.12.2008 17:14:35
Roland
Ich bin zwar nicht Rainer, antworte aber trotzdem

Sub Aufruf2()
With ThisWorkbook.Worksheets(1)
.Range("B1").Value = DemNächstenWertZuordnen(.Range("A10").Value)
End With
End Sub


AW: letzte Zusatzfrage
25.12.2008 17:20:02
Ernst
Hallo Roland
Sorry für die Verwechslung, Code funktioniert bestens!
Vielen Dank
Ernst
Formel versus VBA
25.12.2008 17:34:18
WF
Einer einfachen Formel in einer Zelle steht ein Besinnungsaufsatz von 20 Zeilen gegenüber - abartig.
Die Formel ist relativ lang - nur aber, da der Bereich zwei mal darin aufgeführt wird.
Steht der Bereich (die Untergrenzen) in einer Spalte (Normalfall - hier: B1 bis B?), reduziert diese sich auf:
=INDEX(B:B;VERGLEICH(A1;B:B))
Mit VBA schreibt man sich da ja nen Wolf.
WF
Anzeige
AW: Formel versus VBA
25.12.2008 17:44:48
Ernst
Hallo WF
Danke für Deine Erläuterungen, die Lösung mit VBA gibt ein genaueres Resultat, da die Formel entweder mit 1 = nimmt den grösseren Wert, oder mit -1 = nimmt den kleineren Wert.
Zum Beispiel:
Wert 77 zugeordnet 65 (falsch)
mit VBA: Wert 77 zugeordnet 80 (richtig)
Gruss Ernst
Das ist nicht "genauer" das ist .....
25.12.2008 17:55:37
WF
..... was anderes, als Du gefragt hast !
WF
AW: Das ist nicht "genauer" das ist .....
25.12.2008 18:03:00
Ernst
Sorry habe dies auch erst später gemerkt!
AW: Formel versus VBA
25.12.2008 18:32:22
Roland
Hallo WF,
flame on:
dass Du eine Formellösung bevorzugst, ist mir schon klar, andere Lösungs-Ansätze aber als abartig abtust, nicht gerechtfertigt.
Der VBA-Ansatz (den man evtl. auch noch kürzer fassen kann) "belastet" nicht wie eine Formel permanent das Arbeitsblatt, was sich bei übermäßiger Verwendung von Formeln in der Berechnungsdauer bemerkbar macht und mit einer Sub hat der Nutzer die genaue Steuerung, wann eine Neuberechnung laufen und was sie konkret umfassen soll.
Auch beim Aufwand bin ich anderer Meinung: wie das konkrete Beispiel zeigt, ist die Entwicklung beider Ansätze in nahezu identischer Zeit zu schaffen.
flame off:
Frohes Restfest An Dich ;-))
Roland Hochhäuser
Anzeige
"in nahezu identischer Zeit zu schaffen."
25.12.2008 18:41:28
WF
Hi Roland,
die Antwort gab ich um 15:42 Uhr - meinen Rechner hab ich heute um ca. 15:30 gestartet und Herber ist nicht das erste, was ich aufrufe.
Salut WF
i.O. und nun Peace o.w.T.
25.12.2008 19:40:24
Roland

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige