Clever-Excel-Forum

Normale Version: Y aus X berechnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Y  aus X berechnen

1 - 6 - 11 - 16      -  Y  Werte

2 - 7 - 12 - 17      -  X Werte
3 - 8 - 13 - 18
4 - 9 - 14 - 19
5 - 10 - 15 - 20

Ich suche eine VBA Lösung für die Berechnung einer Variablen Y in Abhängigkeit von X.  Die Beziehung der beiden Variablen ist dabei
durch oben stehende Zahlentafel gegeben bzw. festgelegt.  Wenn X den Wert 2,3,4 oder 5 hat ist Y = 1. Hat x den Wert 17,18, 19 oder 20 hat
y den Wert 16. Wie berechne ich mittels VBA die Variable Y aus einem aus dem obigen Zahlenfeld vorgegeben Wert X?

Danke für eure Hilfe.
=KÜRZEN((A1-1)/5)*5+1

Y = Trim((X - 1) / 5) * 5 + 1 ungetestet (und ohne MIN und MAX)
Hallo

eine VBA-Variante

Code:
Sub test()
   Dim rngBereich As Range
   Dim c As Range
   Dim x As Variant
   Dim y As Variant
   x = InputBox("X-Wert eingeben", "X-Wert")
   If x = "" Then Exit Sub
   Set rngBereich = Range("A2:D5")
   Set c = rngBereich.Find(x, LookIn:=xlValues, lookat:=xlWhole)
   If Not c Is Nothing Then
       y = Cells(1, c.Column).Value
       MsgBox "Y hat den Wert " & y
   End If
End Sub
MfG Tom
@lupo1
danke für deine Antwort. Deine Lösung scheint aber leider nicht zu funktionieren.
Man kleines Kontrollprogramm wirft hier Werte aus, die nicht der Regel der Aufgabenstellung entsprechen.


Code:
Sub Y_aus_X()

Dim i, X, Y
X = Array(2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 17, 18, 19, 20)

For i = LBound(X) To UBound(X)
Y = Trim((X(i) - 1) / 5) * 5 + 1
Debug.Print "Y = " & Y & " X = " & X(i)
Next

End Sub
Hallo,





Code:
Y = (X(i) - 1) \ 5 + 1
@Hallo Edgar,
schöne einfache Formel, schein aber leider nicht zu funktionieren.

Mein kleines Testprogramm ergibt für deinen Lösungsansatz folgende Werte:

Y = 1 X = 2
Y = 1 X = 3
Y = 1 X = 4
Y = 1 X = 5
Y = 2 X = 7
Y = 2 X = 8
Y = 2 X = 9
Y = 2 X = 10
Y = 3 X = 12
Y = 3 X = 13
Y = 3 X = 14
Y = 3 X = 15
Y = 4 X = 17
Y = 4 X = 18
Y = 4 X = 19
Y = 4 X = 20

y hat aber die Werte 1 - 6 - 11 - 16
Moin!
Gelöscht, war Blödsinn!
Gruß Ralf
Danke, lieber Frager, für Dein Testprogramm! Das macht es leichter!

Y = Int((X(i) - 1) / 5) * 5 + 1

Trim verwechselte ich in der Eile mit KÜRZEN, entspricht aber einem GLÄTTEN ohne Mehrfach-Leerzeichen-Eindampfung.

Boskos Ganzzahldivision ist schicker:

Y = ((X(i) - 1) \ 5) * 5 + 1
Vielen Dank Leute!

Ich war gestern nah an deiner Lösung von dir heute Lupo1. Hatte aber dann wohl irgendwie falsch geklammert.
Insgesamt kam ich zu einer komplizierteren Lösung, die ich hier nicht vorstelle.
Die Lösung von Edgar ist mir vollkommen neu.
Habe was gelernt. Danke!