PDA

Vollständige Version anzeigen : Tabelle nach 2 Kriterien sortieren


MiB-ultraking
06.10.2007, 17:51
Hallo,

ich möchte für unseren verein ein auswerteprogramm in excel erstellen.
Folgende infos sind enthalten

Platz Team Punkte Ringe

1. HSG Erlanlagen 12 1500
2. SV Unternesselbach 12 1600
3. SG Colmberg 10 1200
4. SG Uffenheim 8 1800


Ich habe eine liste wo Team,Punkte und Ringe aufgeführt werden und möchte das er diese in eine Rangtabelle sortiert. Und zwar nach der Anzahl der Punkte.
Das wäre noch nicht das große problem bei der sache, nur das zweite ist wenn zwei teams (wie im bsp Platz1und2) die gleiche Anzahl an Punkten hat soll er diese zwei anhand der Anzahl der Ringe sortieren.


Ich hoffe ich habe mein problem verständlich erklärt :)

Schonmal danke für eure Hilfe!!!!!!

Nagus
06.10.2007, 21:55
Hallo MiB,

bei solchen Aktionen hilft eigentlich immer der Makrorekorder (wobei ich jetzt nicht weiss, ob es den in xl 2007 auch noch gibt?)

Wenn deine Spalten entsprechend aufgeteilt sind, also
A Platz
B Team
C Punkte
D Ringe

dann sollte folgender Code deinen Anforderungen entsprechen:


ActiveSheet.Range("A:D").Sort _
Key1:=Range("C2"), Order1:=xlAscending, _
Key2:=Range("D2"), Order2:=xlAscending, Header:=xlYes

jinx
07.10.2007, 05:24
<font size="2" face="Century Gothic">Moin, Nagus,

es ist mir neu, daß in Sporttabellen derjenige oben steht, der die wenigsten Punkte hat (das zeigt xlAscending an - bisher hätte ich da immer xlDescending eingesetzt. ;))...

@MiB-ultraking:
eine zusätzliche Spalte bilden, in der es für jeden Punkt 10000(0) und für jeden Ring 1 gibt - daraus lässt sich dann per Funktion RANG eine eindeutige Reihenfolge bestimmen, die nicht durch VBA sortiert werden muss, sondern sich über Sverweisfunktion nach links (http://www.excelformeln.de/formeln.html?welcher=24) per Formeln aktualisieren lässt.</font>

MiB-ultraking
07.10.2007, 10:07
Danke, jinx

Das mit 10000 und 1 funktioniert super und is ne simple aber effektive idee!!!!!

Echt Danke wäre allein an diesem Problem gescheitert!:mrcool:

Nagus
07.10.2007, 10:48
Hallo jinx,

klar, hast natürlich recht.
Die Spalten und Formelfunktion war aber eh die bessere Lösung, wie es aussieht.

Costi
11.10.2007, 15:04
Hallo, alle zusammen!

Bin gerade durch die neueste Newsletter auf den Beitrag gestossen. Deshalb möchte ich gern noch etwas ergänzen. Da ich auch oft und viel mit Sporttabellen arbeite, habe ich mir folgendes Verfahren angewöhnt:

Als Beispiel nehme ich mal eine Fussballtabelle. Die Sortierung soll in der Reihenfolge Punkte -> Tordifferenz -> selbstgeschossene Tore erfolgen.

In eine seperate Spalte folgende Formel einsetzen:

Punkte + (Tordifferenz/1000) + (geschossene Tore/10000) + [(Zeile()/100000)]

Als nächstes über die RANG-Funktion die Reihenfolge ermitteln und dann - wie Jinx schon sagte - über die SVERWEIS-Funktion das Ganze ordenlich listen.

Vorteil: Die Index-Spalte (so nenne ich die immer bei mir) kann (fast) beliebig um weitere Kritereien erweitert werden. Das eigentliche Rechenergebnis der Spalte ist irrelevant und wird nicht weiter für Berechnungen benötigt, es dient ausschließlich nur zur Sortierung. Mann muss nur immer darauf achten, dass ein weiteres Kriterium den Teiler des vorherigen multipliziert mit 10 bekommt. Die Höhe des Teilers bestimmt gleichzeitig die Wichtigkeit des Kriteriums. Je kleiner der Teiler, desto wichtiger das Kriterium.

(Zeile()/100000)
Diesen Zusatz habe ich nur mal optional dazugefügt. Er sorgt dafür, dass es auch bei völliger Punkt- und Torgleicheit und damit auch (logischerweise) gleicher Tordifferenz, eine Reihenfolge gibt; sichergestellt durch die Funktion ZEILE()

Wenn man sich das Schema mal verdeutlicht hat, kann man es eigentlich für beinahe jeden beliebigen Zweck Rangfolgen einrichten.

Schöne Grüße
Costi

mjanz
11.10.2007, 17:02
Hi Costi,

irgendwie habe ich das nicht gerallt. Würdest Du eine Beispieldatei zur Verfügung stellen? Ich würde mich tierisch darüber freuen...

Gruß
Marcus

jinx
11.10.2007, 17:17
<font size="2" face="Century Gothic">Moin, Costi,

in der Sportart, die ich früher ausgeübt habe (und das war bestimmt nicht einarmiges Bierkrügereißen ;)) wurde bei Punktgleichheit der direkte Vergleich zwischen den Mannschaften herangezogen - da nützt dann eine Division der Zeilen analog zu In Rangliste bei gleichen Punktzahlen den richtigen Verweis liefern (http://www.excelformeln.de/formeln.html?welcher=137) nicht viel...</font>

Costi
11.10.2007, 21:17
Hi mjanz,

habe Dir mal ein Beispielsheet angehängt. Die obere Tabelle würde man dann wegblenden oder noch besser auf ein Extra-Tabellenblatt auslagern, so dass sie optisch nicht weiter stört.

@Jinx
Man kann halt nicht alles haben...;) In der Bundesliga und in vielen anderen größeren Ligen gibt es keine Wertung des direkten Vergleichs. Den direkten Vergleich mit einzubeziehen, stelle ich mir schwierig vor... Ist aber sicherlich mit einigem Aufwand machbar. Allerdings habe ich es bislang noch nie benötigt und wenn, dann würde ich das vermutlich eher per VBA lösen.

Schöne Grüße
Costi

Heiko S
12.10.2007, 12:11
@ costi and jinx

Ein VBA script braucht ihr gar nicht. Ich habe beim Tischtennis ein gleiches Problem gehabt: Bei Punkt- und Satzgleichheit sollte der direkte Vergleich zählen.

Ich habe einfach zwei weitere Spalten eingefügt. In der ersten wird z.B. manuell ein "D" für direkter Vergleich eingegeben. In der zweiten Spalte wird durch eine wenn-Formel dieser Eintrag abgefragt und bei einem "D" der Wert "1" eingetragen bzw. nichts, falls in der Spalte kein Eintrag vorgenommen wurde (diese Spalte kann getrost ausgeblendet werden). Der Wert 1 wird einfach zur Summe der beiden Kontrahenten addiert und somit hast du für dein Ranking einen 1. und einen 2. Platz bei Punkt- und Satzgleichheit.

Hast du mehr als zwei gleiche Spieler / Mannschaften, musst du ggfs. die gespielten Bälle auszählen lassen. Danach bekommt erhält der Spieler mit dem besten Ergebnis ein "D" und der zweitbeste Spieler ein "B". Durch deine Wenn-Formel weist du dem "D" den Wert "1" zu, dem "B" den Wert "0,5". Dann wieder in deine normale Summe mit einfließen lassen und da hast wieder ein Ranking trotz gleicher Punkt- und Satzzahl.

Gruß...
Heiko

jinx
12.10.2007, 17:11
<font size="2" face="Century Gothic">Moin, Heiko,

warum meinst Du, ich würde ein Makro dafür benötigen oder vorschlagen? Irrglauben ;) Aber bei bis zu 5 punktgleichen Mannschaften wird die Auswertung schon formeltechnisch ein wenig anspruchsvoller... :grins:
</font>