hier mein Problem: ich möchte, daß Daten bestimmte Werte zugeordnet werden. Konkreter ausgedrückt: wenn ich z.B. die Werte 12, 18 und 25 habe, dann soll „25“ der Wert „10“ zugeordnet werden, „18“ „7“ und „12“ der Wert „5“. Dies soll anhand einer allgemeinen Formel geschehen, da ich sie vielseitig anwenden möchte.
Vielleicht geht es über eine Wenn-Dann Prüfung.
Das heist: wenn z.B. in der Zelle A1 der Wert 25 eingetragen ist, erscheint z.B. in der Zelle B1 automatisch der Wert 10.
Die Formerl für die Zelle B1 wäre dann:
=WENN(A1=25;10;" ")
Ist der Wert in A1 nicht 25 bleibt die Zelle automatisch leer.
Achim
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Vielen Dank schonmal für die Antwort.
Leider hatte ich mein Ansinnen gedanklich noch nicht so strukturiert. Die Werte, die eine Zuordnung erfahren sollen, stehen nämlich noch nicht fest. Ferner soll die Zuordnung relativ erfolgen, d.h. daß der größte Wert die Zuordnung „10“ erhalten soll, der zweitgrößte „7“ usw. Entschuldigung also, daß ich noch mal fragen muß…
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
berechnet, d.h.: Wenn A1 das Maximum im Bereich A1:A3 ist, wird 25 ausgegeben, ansonsten wird weitergetestet: Ist A1 das Minimum im Bereich? Wenn ja, 5 ausgeben, sonst 7 ausgeben, dann ist A1 nämlich der mittlere Wert.
Die Formel brauchst Du dann nur noch in B2 und B3 runterkopieren.
Hoffe, Du hast alles verstanden.
Bis hierhin hab’ ich alles verstanden. Danke schonmal dafür! Wie ist es aber mit mehr als drei Vergleichswerten, so daß dann neben Maximum und Minimum nicht nur einer übrig bleibt, sondern zB der zweitgrößte (-kleinste) usw?
Schönen Gruß
Jupp
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
So, jetzt hab ich eine allgemeine Lösung für Dich, ist ein bisschen aufwendig, aber nicht weiter schwierig:
Geh mit Alt+F11 in den VB-Editor. Erstelle dort mit Rechtsklick auf die aktuelle Mappe (VBAProjekt()) ein neues Modul.
Dort hinein kommen die folgenden Funktionen:
’ Diese Funktion nimmt als Argumente einen Zellbereich
’ und eine Testzelle (aus diesem Bereich). Der Rückgabewert
’ ist die Positionierung/Platzierung.
Function Platz(GanzerBereich As Range, TestZelle As Range)
n = 0
For Each c In GanzerBereich
If c.Value > TestZelle.Value Then n = n + 1
Next
Platz = n + 1
End Function
’ Diese Funktion ordnet einer Platzierung die Punkte zu
Function Punkte(p&:wink:
Select Case p
Case 1 ’ Platz 1
Punkte = 25 ’ bekommt 25 Punkte
Case 2
Punkte = 20
Case 3
Punkte = 15
Case 4
Punkte = 10
Case Is > 4 ’ schlechter als 4?
Punkte = 0 ’ keine Punkte
End Select
End Function
In Deiner Tabelle hast Du die Werte etwa in den Zellen A1:A7.
Die Platzierungspunkte kommen in die Zellen daneben (B1:B7). Schreibe in Zelle B1
=Punkte(Platz(A$1:A$7;A1))
und kopiere das runter bis B7.
Wenn Du willst, kannst Du die Platzierung noch in Spalte C ausgeben:
Maximaler Respekt&letzte Frage
Absolut genial! Hab’ jetzt alles so hinbekommen, wie ich wünschte. Nochmal eine kleine Frage: Da in den auszuwertenden noch keine Werte stehen, zeigen die Ergebnisse stets den Wert „10“ an. Um aber den Werdegang und eine aktuelle Summe zu berechnen, müßte in den noch nicht ausgewerteten Feldern „0“ (zwecks Addition) stehen…
PS.: Punktebewertung stimmt- hätte ich ja auch gleich sagen können.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
freut mich, dass es das war, was Du brauchtest. Das mit den leeren Zellen hab ich glatt vergessen, Du kannst es so ändern:
Function Platz(GanzerBereich As Range, TestZelle As Range)
If TestZelle.Value = „“ Then
Platz = 0
Else
n = 0
For Each c In GanzerBereich
If c.Value > TestZelle.Value Then n = n + 1
Next
Platz = n + 1
End If
End Function
Jetzt wird einer leeren Zelle die Platzierung 0 zugewiesen und damit auch keine Punkte vergeben.