Excel Liste Formel?

...komplette Frage anzeigen

5 Antworten

Um die Namen in einer eigenen Tabelle anzuzeigen, muss man ziemliche Klimmzüge unternehmen, v.a. wenn es gleiche Anzahlen von Toren gibt. Die einfache Variante ist tatsächlich der normale Autofilter, ggf. ergänzt mit der Formel von Oubyi (rang.gleich), damit man es direkt sieht.

Ansonsten haben sich kluge Köpfe schon Lösungen für Fußballtabellen überlegt (die funktioniert für Deinen Fall auch, aber Spalte C dann leer lassen)

http://www.excelformeln.de/formeln.html?welcher=283

Die Felder auf Zahl ohne Nachkommastellen stellen, damit die Anzeige sauber aussieht. Wichtig noch, weil der Hinweis da auf der Seite fehlt:

Die Formeln mit { }  ohne die geschwungenen Klammern eingeben und dann STRG+SHIFT+Enter drücken. Ansonsten funktioniert das nicht.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Oubyi
16.10.2016, 14:28

DH!
Wusste ich doch, dass die Formel, die ich mir zusammengestoppelt habe, auch einfacher zu gestalten ist.
Und auf die Idee, auf der "ultimativen EXCEL-Formelseite" nachzusehen, hätte ich auch kommen können.
Aber so konnte ich mal wieder etwas üben (:o).

1

Mal eine keine Ergänzung zu dem ganzen, natürlich haben Ninombre und Oubyi dir ja schon Formeln gezeigt wie du das hin bekommst.

Ich bin jemand der auch gerne mit Makros arbeitet und möchte dir diese Möglichkeit nicht vorendhalten:

Hier das Makro, welches du mit ALT+F11 im VBA einbauen könntest. Hier wird überwacht ob etwas in Spalte B geändert wird, wenn das der Fall ist wird automatisch Spalte A und B neu sortiert.

Du kannst auch einfach in Spalte A einen neuen Namen eingeben, nur sobald du dann in Splate B die Tore einträgst wird die Tabelle neu sortiert.

Schritt 1: Mit ALT+F11 in das VBA Fenster von Tabelle1 (wenn sie so heißt) wechseln (Das musst du im Code natürlich anpassen).

Schritt 2: Folgenden Code dort eintragen

Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, Range("b:b")) Is Nothing) Then
Columns("A:B").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("B:B" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("A:B")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
End If

End Sub

Schritt 3: Datei als Exceldatei mit Makros (xlsm) speichern. Beim speichern musst die die folgende Frage mit NEIN beantworten und dann unten xlsm zum speichern aussuchen.

Jetzt hast du in deiner Liste die Topscorer immer oben :))

Wäre das was für dich? Falls Fragen sind immer raus damit :))

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Oubyi
16.10.2016, 20:54

DH!
Kleine Ergänzung:
Mit:

Schritt 1: Mit ALT+F11 in das VBA Fenster von Tabelle1 (wenn sie so heißt) wechseln

kommst Du (meist/ immer?) in ein Allgemeines Modul und musst erst über den Projekt-Explorer in das Modul des Tabellenblattes wechseln.

Mit einem Rechtsklick auf den Tabellenreiter (unten, da wo z.B. Tabelle1 steht) und dann auf "Code anzeigen...".

kommst Du direkt ins Modul des Tabellenblattes, in das dieser Ereignis-Code unbedingt gehört, da er sonst nicht funktioniert.

1

Du brauchst doch nur die beiden Spalten markieren bis alle Spieler und Tore markiert sind.
Dann oben auf Daten klicken und dann Sortieren.

Antwort bewerten Vielen Dank für Deine Bewertung

Diese Formel in C1 und runterkopieren:

=RANG.GLEICH(B1;$B$1:$B$10;)

Klappt es?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Oubyi
16.10.2016, 14:07

Falls Du eine extra Liste haben willst, in der die Torschützen ihrem Rang nach sortiert sind, dann hätte ich da auch eine Formel für Dich. Die ist allerdings recht kompliziert geworden. Kann sein, dass man das auch einfacher hinbekommt, aber funktionieren sollte sie:

{=INDEX($A$1:$A$10;(KKLEINSTE(WENN(NICHT(ISTFEHL(SUCHEN($B$1:$B$10-ZEILE($B$1:$B$10)*0,001;KGRÖSSTE($B$1:$B$10-ZEILE($B$1:$B$10)*0,001;ZEILE(A1)))));ZEILE($B$1:$B$10));1)))}

und runterkopieren.
**ACHTUNG!**
Das ist eine Matrixformel.
Das bedeutet: Die geschweiften Klammern {} NICHT mit eingeben, sondern die Eingabe der Formel NICHT mit ENTER abschließen, sondern mit:
STRG & SHIFT & ENTER (alle drei gleichzeitig).
DAS erzeugt die { } und macht die Formel zu einer Matrixformel.

Angenommen diese Liste beginnt in der Zelle E1, dann kannst Du mit dieser Formel in F1 und runterkopieren noch die zugehörigen Tore daneben schreiben:

=INDEX($B$1:$B$10;VERGLEICH(E1;$A$1:$A$10;0))

2

Was möchtest Du wissen?