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!