PDA

Vollständige Version anzeigen : 3 Werte vergleichen und Wiedergeben (makro, Formel oder VBA)


Salvadin
11.01.2014, 22:40
Hallo,

ich komme einfach nicht weiter, ist etwas kompliziert (vielleicht auch einfach und ich komme nicht drauf). Würde mich freuen, wenn
ich Tipps oder Lösungsvorschläge bekommen würde :)

Ich versuche mein Problem zu erklären. Anbei mein Ecel Beispielbild

http://s1.directupload.net/images/140111/temp/8iyebnrk.png (http://www.directupload.net/file/d/3499/8iyebnrk_png.htm)

Erklärung:

Ich habe 3 Werte ohne Toleranz und 3 Werte mit Toleranz.
Ich suche jetzt die Passende Bezeichnung in meinem Matrix (mit Werte) die innerhalb der Werte ohne Toleranz und Werte mit Toleranz liegen. Zb. 15-20 (innerhalb 15 bis 20)

Das Problem ist jetzt, wie kann ich 3 Werte in einem Matrix vergleichen (alle 3 Werte müssen passen d.h. die Werte im Matrix dürfen gleich und größer sein aber nicht kleiner...)

Und dann 3 Vorschläge mit Makro oder VBA wiedergeben.

Zb.
B C D
Werte ohne T 15 10 15
Werte mit T 20 15 20


Wert1 Wert2 Wer3 Bezeichnung
20 10 25 a
25 8 20 b
26 18 25 c
35 30 10 d
36 25 10 e
40 10 25 f
45 20 25 g
40 40 40 h


Vorschlag(Lösung):
Wert1 Wert2 Wert3 Bezeichnung
???
??
??

In meinem Beispiel wäre Lösung: Werte 1/2/3 + Bezeichnung a, c und f

Ich komme einfach nicht weiter :(

Salvadin
12.01.2014, 01:04
Hab edit funktion nicht gefunden:

Hab was erarbeitet aber schreibt nur die letzte gefundene werte:

Sub Suchen()

Dim IntZeile As Integer

For IntZeile = 1 To 30

If Range("B" & IntZeile) >= Range("B2") And Range("C" & IntZeile) >= Range("C2") And Range("D" & IntZeile) >= Range("D2") And Range("B" & IntZeile) >= Range("B3") And Range("C" & IntZeile) >= Range("C3") And Range("D" & IntZeile) >= Range("D3") Then

Range("H3").Value = Range("B" & IntZeile)
Range("I3").Value = Range("C" & IntZeile)
Range("J3").Value = Range("D" & IntZeile)


End If

Next

End Sub


besser wäre die erste...dann zweite und dritte.....

ebs17
12.01.2014, 20:30
Hab edit funktion nicht gefunden
Beitragseditierungen sind hier nur in einem Zeitfenster von 2 Stunden möglich.

Zur Aufgabe:
innerhalb der Werte ohne Toleranz und Werte mit Toleranz liegen. Zb. 15-20 (innerhalb 15 bis 20)
- vs. -
alle 3 Werte müssen passen d.h. die Werte im Matrix dürfen gleich und größer sein
Deine Bedingungen sind nicht nachvollziehbar. Entweder Deine Toleranzen werden eingehalten oder eben nicht.

In Deiner Lösungsmenge sind alle Werte Wert3 (25) außerhalb des Bereiches 15 ... 20 ??

Ansonsten: Die Aufgabe an sich lässt sich mit einer einfachen SQL-Anweisung lösen. Als Ansatz:
SELECT M.Wert1, M.Wert2, M.Wert3, M.Bezeichnung
FROM tblMatrix AS M, tblTestlinge AS T
WHERE M.Wert1 >= T.Wert1
AND M.Wert2 >= T.Wert2
AND M.Wert3 >= T.Wert3
bzw. bei Einhaltung der Toleranzen:
SELECT M.Wert1, M.Wert2, M.Wert3, M.Bezeichnung
FROM tblMatrix AS M, tblTestlinge AS T
WHERE M.Wert1 Between T.Wert1 AND T.Wert1 + T.Toleranz
AND M.Wert2 Between T.Wert2 AND T.Wert2 + T.Toleranz
AND M.Wert3 Between T.Wert3 AND T.Wert3 + T.Toleranz
Und dann 3 Vorschläge ... wiedergeben
Nach welchen Kriterien würden die ausgewählt?