Supportnet / Forum / Tabellenkalkulation
Rangliste in MS-Excel
Frage
Hallo zusammen
Ich habe im MS-Excel mehrere Register, bei denen in jedem Feld H4 eine Zahl steht (z.B. 899). Jetzt möchte ich all diese Zahlen in einem neuen Register ranglistenmässig zusammenfassen, und zwar so, dass jenes Register mit der höchsten Zahl zuoberst angezeigt wird, jenes mit der zweithöchsten Zahl eine Zeile darunter etc. Wenn möglich sollte eine Spalte davor z.B. der Name aus dem Feld A1 angezeigt werden oder der Registername.
Ist soetwas möglich? Welche Formel muss ich dafür verwenden?
Besten Dank für Eure Hilfe.
Grüsse
Roman
Antwort 1 von Pida.
Du musst zunächst einmal 3D-Bezüge verwenden: =(registername!H4) bzw. =(registername!A1).
Ich weiss nicht, ob eine automatische Sortierung wie gewünscht möglich ist. Was in jedem Fall geht: Die Werte im neuen Register nochmal irgendwo aufs Blatt kopieren und über den smart tag (das kleine Symbol, was nach dem Kopiervorgang erscheint) "Werte" auswählen. Diese Tabelle kannst du jetzt über den Button "Absteigend sortieren" (ZA und Pfeil nach unten) wie gewünscht anordnen.
Gruß, Pida
Ich weiss nicht, ob eine automatische Sortierung wie gewünscht möglich ist. Was in jedem Fall geht: Die Werte im neuen Register nochmal irgendwo aufs Blatt kopieren und über den smart tag (das kleine Symbol, was nach dem Kopiervorgang erscheint) "Werte" auswählen. Diese Tabelle kannst du jetzt über den Button "Absteigend sortieren" (ZA und Pfeil nach unten) wie gewünscht anordnen.
Gruß, Pida
Antwort 2 von Ahnan
Hallo,
falls Interesse, Lösung mit VBA-Makro (ohne Formeln):
Sub Zusammenfassen()
Dim I, iRow As Long
Application.ScreenUpdating = False
iRow = 0
For I = ActiveWorkbook.Worksheets.Count To 1 Step -1
If Worksheets(I).Name <> "Ergebnis" Then _
Sheets("Ergebnis").Cells(iRow, 1).Value = Sheets(I).Name: Sheets("Ergebnis").Cells(iRow, 2).Value = Sheets(I).Range("H4").Value
iRow = iRow + 1
Next I
Sheets("Ergebnis").Select
Columns("A:B").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Voraussetzung: Das Register(Blatt) in dem die Zusammenstellung stattfinden soll, habe ich mit Ergebnis bezeichnet. Also entweder ein Register mit dem Namen ERGEBNIS oder entsprechend im Code ändern.
Das Makro legst du dann auf eine Schaltfläche.
MfG
falls Interesse, Lösung mit VBA-Makro (ohne Formeln):
Sub Zusammenfassen()
Dim I, iRow As Long
Application.ScreenUpdating = False
iRow = 0
For I = ActiveWorkbook.Worksheets.Count To 1 Step -1
If Worksheets(I).Name <> "Ergebnis" Then _
Sheets("Ergebnis").Cells(iRow, 1).Value = Sheets(I).Name: Sheets("Ergebnis").Cells(iRow, 2).Value = Sheets(I).Range("H4").Value
iRow = iRow + 1
Next I
Sheets("Ergebnis").Select
Columns("A:B").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Voraussetzung: Das Register(Blatt) in dem die Zusammenstellung stattfinden soll, habe ich mit Ergebnis bezeichnet. Also entweder ein Register mit dem Namen ERGEBNIS oder entsprechend im Code ändern.
Das Makro legst du dann auf eine Schaltfläche.
MfG
Antwort 3 von baracus
@Pida
Vielen Dank für Deinen Tipp, ist ja eigentlich ganz leicht! :) Hat super geklappt!
Grüsse
Roman
Vielen Dank für Deinen Tipp, ist ja eigentlich ganz leicht! :) Hat super geklappt!
Grüsse
Roman

