RANG()-Funktion

Guten Abend zusammen,

wenn es in einer Tabelle mehrere gleich Ränge gibt, z.B 1x Erster,2xZweiter, dann gibt es keinen dritten Platz sondern einen Vierten.

Dazu habe hier folgende Lösung gefunden:

http://www.herber.de/mailing/021898h.htm

Function XRang(rng As Range, dValue As Double) As Integer
 Dim iCounter As Integer, iCell As Integer, iLarge As Integer
 For iCounter = 1 To rng.Rows.Count
 If iLarge Application.Large(rng, iCounter) Then
 iLarge = Application.Large(rng, iCounter)
 iCell = iCell + 1
 If Application.Large(rng, iCounter) = dValue Then
 XRang = iCell
 Exit Function
 End If
 End If
 Next iCounter
End Function

Nun meine Frage: Wie nutze ich diese XRANG-Funktion?

Eingegeben habe ich den Code in ein Modul, aber es tut sich nichts.

Gruss

Frank

wenn es in einer Tabelle mehrere gleich Ränge gibt, z.B 1x
Erster,2xZweiter, dann gibt es keinen dritten Platz sondern
einen Vierten.
http://www.herber.de/mailing/021898h.htm
Nun meine Frage: Wie nutze ich diese XRANG-Funktion?
Eingegeben habe ich den Code in ein Modul, aber es tut sich
nichts.

Hallo Frank,

das ist wie meine RSumme-Funktion eine BDF (benutzer definierte Funktion)
D.h. sie sind (fast) wie dir bekannten eingebauten Funktionen.
Du findest sie also auch wie normale Funktionen unter
Einfügen—Funktionen–benutzerdefiniert.

Dadurch kannst du sie einfügen oder halt wie auch sonst immer direkt in eine Zelle schreiben:

=xrang($A$1:blush:A$6;A1)

PS: ich hab dich nicht vergessen, bin noch an der Tabbi aber hatte wenig Zeit.

Gruß
Reinhard

Hallo,

habe mir hier nun mal eine Formel gebastelt.

=ZEILE(A1)&". „&INDEX($G$28:blush:G$33;VERGLEICH(KKLEINSTE($J$28:blush:J$33;ZEILE(A1));$J$28:blush:J$33;0))&“ "&INDEX($F$28:blush:F$33;VERGLEICH(KKLEINSTE($J$28:blush:J$33;ZEILE(A1));$J$28:blush:J$33;0))

Da ich aber gleiche Punktzahlen habe die dann auch den gleichen Rang haben, musste ich feststellen, dass ich hiewr mit =Zeile(A1) nicht weiter komme.

Wie muss die Formel abgeändert werden,dass mir auch doppelte Plätze angezeigt werden?

Gruss

Frank

=ZEILE(A1)&".
„&INDEX($G$28:blush:G$33;VERGLEICH(KKLEINSTE($J$28:blush:J$33;ZEILE(A1));
$J$28:blush:J$33;0))&“
"&INDEX($F$28:blush:F$33;VERGLEICH(KKLEINSTE($J$28:blush:J$33;ZEILE(A1));
$J$28:blush:J$33;0))

Da ich aber gleiche Punktzahlen habe die dann auch den
gleichen Rang haben, musste ich feststellen, dass ich hiewr
mit =Zeile(A1) nicht weiter komme.

Wie muss die Formel abgeändert werden,dass mir auch doppelte
Plätze angezeigt werden?

Hallo Frank,

ich weiß grad nicht was du mit "auch doppelte

Plätze angezeigt werden"

genau meinst und was das mit der Rang-Bestimmung zu tun hat.

Du willst die Rangreihenfolge 1,2,2,2,3,4,

das macht der Code von H.Herber, den du fandest.
Oder dieses Arrayformel:
http://www.excelformeln.de/formeln.html?welcher=230

Wenn du bei deinem Turnierbericht alle vier erstplatzierten also alle mit Platz 1 bis 4 auflisten willst ist das eine andere sache als die Rang-bestimmung.
Und das kommt dann erst ins Gespräch wenn die Tabelle an sich stabil läuft inklusive Rangbestimmung.

Gruß
Reinhard

Hallo Reinhard,

Du willst die Rangreihenfolge 1,2,2,2,3,4,

das macht der Code von H.Herber, den du fandest.
Oder dieses Arrayformel:
http://www.excelformeln.de/formeln.html?welcher=230

Richtig, und den Code habe ich auch schon eingebaut. Die Array-Formel ist mir auch geläufig,habe aber bewusst drauf verzichtet,da du sagtest,Matix-Formeln wären langsamer.

Und das kommt dann erst ins Gespräch wenn die Tabelle an sich
stabil läuft inklusive Rangbestimmung.

Ich wollte dich nur ein wenig entlasten,denn ansonsten kann ich ja erstmal gar nix machen.

Gruß

Frank

hallo Frank,

Du willst die Rangreihenfolge 1,2,2,2,3,4,

das macht der Code von H.Herber, den du fandest.
Oder dieses Arrayformel:
http://www.excelformeln.de/formeln.html?welcher=230

Richtig, und den Code habe ich auch schon eingebaut. Die
Array-Formel ist mir auch geläufig,habe aber bewusst drauf
verzichtet,da du sagtest,Matix-Formeln wären langsamer.

jain. Sicher sind Matrixformeln langsam aber man muß sehen wieviele es sind.
Hast du in zigtausenden Zellen Matrixformeln, oha, dann kannste nach jedem Zelleintrag der eine Berechnung des Blattes auslöst mal locker Kaffee trinken gehen.

Für deine rangermittlung wären das so 220 Matrixformeln.
Ggfs. kommen noch für den Turnierbericht paar dazu,

Das kann noch im hinnehmbaren Rahmen sein. D.h., du änderst eine Zelle und im Idealfall merkst du zeitlich keine, eine leichte, Verzögerung bis du die nächste Zelle ändern darfst.

Und das kommt dann erst ins Gespräch wenn die Tabelle an sich
stabil läuft inklusive Rangbestimmung.

Ich wollte dich nur ein wenig entlasten,denn ansonsten kann
ich ja erstmal gar nix machen.

Doch, das kannst du, jeden Code von mir zerlegen und versuchen zu verstehen.

Derzeit bin ich dabei wie du auch sagtest es so zu machen daß du immer nur eine Runde siehst und daß da alles so klappt wie vorher.
Und daß da die Gesamtsummenrechnung stimmt.

Für mein Empfinden ist die so gebaute mappe deutlich schneller beim laden usw.
Dazu flogen auch alle Formeln im Blatt „SE“ raus.

Ziel ist, daß du beim nächsten Turnier die Mappe präsentierst und einsetzt und sie funktioniert.

Gruß
Reinhard

Hallo Frank,

Doch, das kannst du, jeden Code von mir zerlegen und versuchen
zu verstehen.

Würd ich ja gerne,wenn mir die Excel-Hilfe besser zur Hand gehen würde.

Derzeit bin ich dabei wie du auch sagtest es so zu machen daß
du immer nur eine Runde siehst und daß da alles so klappt wie
vorher.
Und daß da die Gesamtsummenrechnung stimmt.

Eigentlich sagte ich, aufgrund deiner Aussage,das die jetzige Tabbi auch weiterhin im Hintergrund läuft,dass du dir dann nicht diese Mühe machen musst und wir die jetzige beibehalten. Die Zeit könnte man dann in die Rangermittlung bzw. Turnierbericht stecken. Ist aber auch kein Problem wenn Du dir die Mühe machen möchtest.

Für mein Empfinden ist die so gebaute mappe deutlich schneller
beim laden usw.
Dazu flogen auch alle Formeln im Blatt „SE“ raus.

Eigentlich kann das ganze Tabellenblatt weg, da ich die Daten für die Siegerehrung später auch aus dem Turnierbericht nehmen kann.

Ziel ist, daß du beim nächsten Turnier die Mappe präsentierst
und einsetzt und sie funktioniert.

Ausser mir,wird die eh keiner zu Gesicht bekommen

Gruß

Frank

Hallo Frank,

Doch, das kannst du, jeden Code von mir zerlegen und versuchen
zu verstehen.

Würd ich ja gerne,wenn mir die Excel-Hilfe besser zur Hand
gehen würde.

dann probiere nie was in Open Office zu programmieren, deren F1 taste ist für’n äh für das hinten.
Dann vermisst du sehr sehr schmerzlich die so geshen gute Hilfe von Excel, zumindest in den Versionen vor 2007.

Es ist vollkommen okay wenn du bei meinen Codes nicht durchblickst denn sie sind schon raffitückisch.
Denn ich muß ja aufgrund der Aufgabenstellung nicht so programmieren daß ich fest sage, wenn in F13 eine Änderung eintritt dann verändere den Wert in X13.

das wäre für dich viel leichter zu verstehen *weiß*
Ich muß aber relativ codieren, d.h wenn F13 geändert wird so wird dann X13 geändert, wird aber M13 geändert so wird k.A. AD13 geändert.
Und das ist nicht so einfach zu verstehen, also der Code.

Derzeit bin ich dabei wie du auch sagtest es so zu machen daß
du immer nur eine Runde siehst und daß da alles so klappt wie
vorher.
Und daß da die Gesamtsummenrechnung stimmt.

Eigentlich sagte ich, aufgrund deiner Aussage,das die jetzige
Tabbi auch weiterhin im Hintergrund läuft,dass du dir dann
nicht diese Mühe machen musst und wir die jetzige beibehalten.

Korrekt, aber ich mag keine langsame tabellen.

Die Zeit könnte man dann in die Rangermittlung bzw.
Turnierbericht stecken. Ist aber auch kein Problem wenn Du dir
die Mühe machen möchtest.

Step by Step, Turnierbericht kommt als letztes, in der tabbi stehen alle wichtigen Dinge, der Turnierbericht muß die dann nur noch anzeigen.

Ziel ist, daß du beim nächsten Turnier die Mappe präsentierst
und einsetzt und sie funktioniert.

Ausser mir,wird die eh keiner zu Gesicht bekommen

Egal, aber hast du nicht was gesagt daß du die mappe getestet hast offiziell und es war ein Reinfall?

Gruß
Reinhard