Wie sortiere ich eine Tabelle in Excel automatisch jedes Mal, wenn einer ihrer Werte aktualisiert wird?

15136
adustybowler

Ich halte die Ergebnisse einer Saison des Baseball-Brettspiels Strat-O-Matic in einer Excel-Tabelle (Excel 2011 für Mac). Das Blatt hat den Ligaplan und die Ligaplatzierung. Ich habe es bereits so eingerichtet, dass die Tabelle jedes Mal aktualisiert wird, wenn ich die Punktzahl eines Spiels betrete, um die neuen Gewinn-Verlust-Rekorde der Mannschaften, die an dem Spiel teilgenommen haben, wiederzugeben.

Nachdem ich die Punktzahl eines Spiels eingegeben habe, möchte ich, dass die Wertung automatisch sortiert wird, anstatt manuell nach Gewinnprozentsatz sortiert zu werden. Wenn es einen Unterschied macht, gibt es tatsächlich vier verschiedene Tabellen, eine für jede der vier Divisionen dieser Liga. Sie sollten alle bei jeder Aktualisierung der Tabelle individuell nach Gewinnprozentsatz sortiert werden.

Jede Hilfe wird geschätzt, danke.

1

1 Antwort auf die Frage

2
Kenneth L

Um die Tabelle zu sortieren, müssen Sie ein VBA-Skript schreiben. Im Allgemeinen kann die Formel in einer Zelle keinen Einfluss auf den Inhalt der anderen Zelle haben (genauer gesagt die Formel der anderen Zelle; eine Zelle kann den Wert der anderen Zellen ändern, wenn die anderen Zellen eine Formel enthalten, die sich darauf bezieht).

Um dieses Problem zu umgehen, können Sie die Zieltabelle nach dem Aktualisieren der Quelltabelle (dh nach Zeitplan) sortieren (dh die Ergebnisse werden sortiert).

  1. Ändern Sie die Quelltabelle so, dass das Ranking automatisch berechnet wird
  2. Aktualisieren Sie die Zieltabelle so, dass ihr Inhalt anhand von der Quelltabelle nachgeschlagen wird VLOOKUP.

Schritt 1

Machen Sie die Rangfolge in der ersten Spalte (dh Spalte A in diesem Beispiel) und machen Sie die Formel wie folgt:

 A | B | C --------------------------------------------------+------+------------------- Rank | Team | Winning Percentage =COUNTIF(C$2:C$9,">"&C2)+1 | A | 0.05 =COUNTIF(C$2:C$9,">"&C3)+COUNTIF(C$2:C2, C3)+1 | B | 0.99 =COUNTIF(C$2:C$9,">"&C4)+COUNTIF(C$2:C3, C4)+1 | C | 0.81 =COUNTIF(C$2:C$9,">"&C5)+COUNTIF(C$2:C4, C5)+1 | D | 0.92 =COUNTIF(C$2:C$9,">"&C6)+COUNTIF(C$2:C5, C6)+1 | E | 0.54 =COUNTIF(C$2:C$9,">"&C7)+COUNTIF(C$2:C6, C7)+1 | F | 0.15 =COUNTIF(C$2:C$9,">"&C8)+COUNTIF(C$2:C7, C8)+1 | G | 0.15 =COUNTIF(C$2:C$9,">"&C9)+COUNTIF(C$2:C8, C9)+1 | H | 0.40 

Bitte aktualisieren Sie den Bereich selbst. Das erste COUNTIFzählt, wie viele Teams einen Gewinnanteil haben, und das zweite COUNTIFzählt, wie viele Teams damit verbunden sind. Dies ist wichtig, weil wir nicht wollen, dass das Ranking durch eine doppelte Rangfolge verwirrt wird VLOOKUP.

Das obige Beispiel sieht zum Beispiel so aus:

Rank | Team | Winning Percentage 8 | A | 5% 1 | B | 99% 3 | C | 81% 2 | D | 92% 4 | E | 53% 6 | F | 15% 7 | G | 15% 5 | H | 40% 

Da Sie sehen, dass Team F und Team G den gleichen Gewinnanteil haben, wird ihnen ein anderes Ranking zugewiesen.

Schritt 2

In Ihrer Zieltabelle (dh in der Tabelle) müssen Sie diese aktualisieren, indem Sie Folgendes verwenden VLOOKUP:

 A | B | C -----+---------------------------------------------+------------------------------------------ Rank | Team | Winning percentage 1 | =VLOOKUP($A2,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A2,Schedule!$A$1:$C$9,3,FALSE) 2 | =VLOOKUP($A3,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A3,Schedule!$A$1:$C$9,3,FALSE) 3 | =VLOOKUP($A4,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A4,Schedule!$A$1:$C$9,3,FALSE) 4 | =VLOOKUP($A5,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A5,Schedule!$A$1:$C$9,3,FALSE) 5 | =VLOOKUP($A6,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A6,Schedule!$A$1:$C$9,3,FALSE) 6 | =VLOOKUP($A7,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A7,Schedule!$A$1:$C$9,3,FALSE) 7 | =VLOOKUP($A8,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A8,Schedule!$A$1:$C$9,3,FALSE) 8 | =VLOOKUP($A9,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A9,Schedule!$A$1:$C$9,3,FALSE) 

Und Sie erhalten Ihre Ergebnisse wie:

Rank | Team | Winning percentage 1 | B | 99% 2 | D | 92% 3 | C | 81% 4 | E | 53% 5 | H | 40% 6 | F | 15% 7 | G | 15% 8 | A | 5%