Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Wie sortiere ich aufsteigend, anstatt absteigend?





Frage

Hallo, Ich habe das Problem in Excel, dass ich mit eurer Hilfe zwar absteigende Rangfolgen festlegen kann, aber leider nicht aufsteigende. Ich würde mich freuen, wenn mir Jemand helfen könnte: Ich möchte Werten in einer Spalte einen Rang zuordnen, der fortlaufend ist (1, 2, 2, 2, 3, etc). Ich möchte das gleiche Werte den gleichen Rang erhalten, wobei Excel den nächstfolgenden höheren Wert / Rang dann fortlaufend nummeriert. So macht es Excel mit der Rangfunktion: 0.2 -> Rang 1 0,5 -> Rang 2 0,5 -> Rang 2 0,6 -> Rang 4 0,73 -> Rang 5 Aber ich hätte es gerne so: 0.2 -> Rang 1 0,5 -> Rang 2 0,5 -> Rang 2 0,6 -> Rang 3 0,73 -> Rang 4 [*] [sup][i]Admininfo: Beitrag verschoben. Siehe [url=https://supportnet.de/faqsthread/840][u]FAQ 2.[/u][/url][/i][/sup]

Antwort 1 von yast2000

Ja, dann ist kein Rang mehr... :-)

Du fragst ja in Wirklichkeit die Häufigkeit der Werte ab und versuchst daraus, eine neue Folge zu bilden, die kein Rang mehr ist.

Dafür brauchst Du zwei IF EXIST-Schleifen - und es gibt garantiert dafür schon eine Lösung im Netz... oder Du machst es einfach per Hand.

St.B.

Antwort 2 von mavida

Ich habe schon nach allen möglichen Stichworten im Netz gesucht, bin aber leider nicht richtig fündig geworden.
Daher habe ich nun gehofft, hier Hilfe zu finden.

Bei meiner gewünschten Sortierung bleibt eine Rangfolge dennoch erhalten.

Vielen Dank.
mavida

Antwort 3 von Marie

Na dann probier mal das hier. Aber Deine Überschrift verstehe ich nicht, was hat das mit aufsteigend oder absteiged zu tun?

Gruß Marie

Private Sub Rang()
'Spalte A sind die Zahlen aufsteigend sortiert
'Spalte B Rang eintragen, gleiche Werte gleicher Rang
Dim Zeile As String
Dim Rang As Integer

Rang = 1
Tabelle1.Cells(1, 2) = "Rang " & Rang
Zeile = 2
While Tabelle1.Cells(Zeile, 1) <> ""
If Tabelle1.Cells(Zeile, 1) <> Tabelle1.Cells(Zeile - 1, 1) Then Rang = Rang + 1
Tabelle1.Cells(Zeile, 2) = "Rang " & Rang
Zeile = Zeile + 1
Wend

End Sub

Antwort 4 von Aliba

Hi mavidia,

oder als Formellösung.

Werte stehen in Spalte A. A1 enthält eine Überschirft, erster Wert steht in A2

Formel in B2:

=WENN(ZÄHLENWENN($A$2:A2;A2)=1;MAX($B$1:B1)+1;B1)

Soweit benötigt nach unten kopieren.

VORAUSSETZUNG!! Die Werte in Spalte A sind wie in deinem Beispiel aufsteigend sortiert.

CU Aliba

Antwort 5 von mavida

Danke, danke.
Ich habe es probiert und die Formellösung funktioniert für oben.

Bezüglich auf- und absteigend brauche ich den Wert 0 mit Rang 1 und die höheren Werte mit hohen Rängen.
Hohe Werte sollen schlechte Ränge darstellen. Daher spreche ich von aufsteigend.

Zur Formellösung habe ich noch folgende Probleme:
Leider sind meine Werte nicht sortiert, sondern durcheinander. Die Tabelle kann ich auch nicht nach der Spalte sortieren, da es noch viele andere Spalten-Parameter gibt.

Jetzt dachte ich, ich könnte die Formel sicher anpassen, aber leider geht das auch nicht so recht.

=WENN(ZÄHLENWENN(INDIREKT("C1:C"&ZEILE($2:$21));$C$2:$C$21)=1;MAX(C2:C2)+1;C2)+1

Kann es sein, dass ich zwischen den ursprünglichen Werten (die, die einen Rang bekommen sollen) keine Lücken haben darf?

Hier mal mein Beispiel
Zielränge / Ursprungsdaten (Spalte C) / Rang laut Formel
6 / 5 / 7
4 / 3 / 4
2 / 1 / 2
4 / 3 / 4
2 / 1 / 2
1 / 0 / 1
3 / 2 / 3
2 / 1 / 2
9 / 8 / 9
5 / 4 / 5
5 / 4 / 5
3 / 2 / 3
2 / 1 / 2
6 / 5 / 7
2 / 1 / 2
8 / 7 / 8
6 / 5 / 7
5 / 4 / 5
3 / 2 / 3
7 / 6 / 7

Ich danke euch für eure Hilfe.

mavida

Antwort 6 von Aliba

Hi Mavidia,

ich kann dir für Dein Problem nur noch eine Lösung mit Hilfsspalte anbieten.

In meinen Beispielformeln stehen die Werte in Spalte B und die Hilfsspalte ist die Spalte F.

In F1 folgende Formel:

=MIN(B:B)

In F2 die Formel:

{=WENN(MIN(WENN($B$1:$B$200>F1;$B$1:$B$200))<=F1;"";MIN(WENN($B$1:$B$200>F1;$B$1:$B$200)))}

ACHTUNG!! ARRAY-Formel! Die geschweiften Klammern nicht händisch erfassen, sondern Formel normal eingeben und dan mit STRG+SHIFT+ENTER abschliessen.

Diese Formel soweit benötigt, bzw. auch darüber hinaus nach unten kopieren/ziehen.

Es werden nun in Spalte F die WErte aus Spalte B als Einzelwerte ohne Duplikate aufsteigend sortiert angezeigt.

Nun für den aufsteigenden Rang (je kleiner desto besser) die Formel:
=RANG(B1;F:F;1)
für den absteigenden Rang:
=RANG(B1;F:F)

CU Aliba

Antwort 7 von mavida

Vielen vielen Dank.
Es funktioniert alles soweit so gut.
Leider habe ich ein Problem, dass ich in meinen Ursprungsdaten auch mal Zahlen habe, die es nicht gibt (z.B. alle Zahlen von 1-10 außer 8).

Formel:
=WENN(ZÄHLENWENN(INDIREKT("C1:C"&ZEILE($1:$21));$C$1:$C$21)=1;MAX(C2:C2)+1;C2)+1
-> in Spalte C stehen die Werte, die einen Rang bekommen sollen.

xls sortiert mir die Werte in der gewünschten Reihenfolge, nur leider bekommen all die Werte, die nicht in der Liste stehen auch einen Rang.
So habe ich immer noch nicht so ganz genau die fortlaufenden Ränge von 1-x.

Danke für eure Hilfe.

mavida

Antwort 8 von Aliba

Hi mavida,

so ganz verstehe ich dich nicht.

Du musst doch dann meinen Formelvorschlag nur auf die Spalte C beziehen, sowohl in der Hilfsspalte ,als auch bei den RANG-Formeln.

Ansonsten mal eine Beispieldatei mit Beschreibung unter:

www.netupload.de

ins Netz stellen. Bitte mit Erläuterungen.

Den Link dann hier posten.

CU Aliba

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: