Tabellenkalkulation: Erstellen Sie eine Spalte basierend auf einer Spalte, sortiert nach den Werten einer anderen

594
Mark Green

Ich möchte eine neue Datenspalte aus einer Spalte erstellen, die nach einer anderen Spalte sortiert ist.

Es ist am einfachsten, mit einem Beispiel zu erklären. Das ist eigentlich nicht das, was ich tue, aber ich denke, es erklärt es gut. Nehmen wir an, die Spalte A enthält die Namen der Personen in alphabetischer Reihenfolge:
Adam
Betty
Colin
Debbie

und Spalte B hat das Geburtsjahr:
1985
1973
1954
1973

Ich möchte eine Spalte C erstellen, in der die Namen der Personen nach ihrem Geburtsjahr aufgeführt sind:
Colin
Betty
Debbie
Adam

Dies sollte auf eine Weise erfolgen, ohne Spalte A oder B zu ändern oder zu sortieren.
Dies sollte auf eine Weise geschehen, die Spalte C automatisch aktualisiert, wenn Spalte A oder B bearbeitet wird.

Vielen Dank! (Ich arbeite in Excel unter Windows 10, wenn es einen Unterschied macht.)

1
Ich kann nicht genau verstehen, was genau Sie erreichen möchten, da sowohl Name als auch Geburtsjahr bereits verfügbar sind. Rajesh S vor 6 Jahren 0
Die gewünschte Ausgabe ist die gleichen Daten wie in Spalte A, jedoch in einer anderen Spalte und sortiert (in einer anderen Reihenfolge nach Datum in Spalte B aufgeführt). Mark Green vor 6 Jahren 0

3 Antworten auf die Frage

0
Akina
Cx=INDIRECT(ADDRESS(COUNTIF(B:B,">=" & Bx),1)) 

Die Geburtsjahrwerte müssen eindeutig sein.

Wenn Daten von einer Zeile mit einer Nummer größer als 1 beginnen, fügen Sie dem COUNTIF () - Wert die richtige Nummer hinzu.

Was sind Cx & Bx !! Rajesh S vor 6 Jahren 1
@RajeshS С ** 1 ** und B ** 1 **, C2 und B2, ... aber nicht C ** 1 ** und B ** 2 **. Akina vor 6 Jahren 0
Es tut mir leid, dass ich einige Tage nicht auf meine Frage zurückkam. Ich wollte, dass es möglichst mit doppelten Jahren fertig wird. Aber ich bin fasziniert von dieser Funktion. Es funktioniert (abgesehen von dem doppelten Problem). Aber wie zieht es Text aus Spalte A ohne Bezug zu Spalte A in der Formel? Mark Green vor 6 Jahren 0
0
Gary's Student

Dies wäre einfach, wenn die Jahre in Spalte B einzigartig wären, aber wir können uns auf doppelte Jahre einstellen. In D1 geben Sie ein:

=B1 

und in D2 eingeben:

=B2+COUNTIF(B$1:B1,B2)*0.001 

und nach unten kopieren. Spalte D repliziert Spalte B mit Duplikaten, die "entmischt" sind. Dadurch kann die MATCH()Funktion alle Werte abrufen. Zum Schluss geben Sie in C1 ein:

=INDEX(A:A,MATCH(SMALL(D:D,ROWS($1:1)),D:D,0)) 

und nach unten kopieren:

0
Mark Green

@ Garrys Student aus irgendeinem Grund habe ich die Formeln, die ich früher brauchte, nicht gefunden. Als ich einige Tage nicht auf diese Seite zurückkam, fand ich die RANK-Formel. (In der neuesten Excel-Version wird RANK abgeschrieben, also habe ich stattdessen die neuere Version von RANK.EQ verwendet. Und dann dachte ich an VLOOKUP, aber mit etwas mehr Suche fand ich INDEX MATCH, was besser erscheint, und Sie haben das auch verwendet.
Also hier ist was gekommen und wie ich mit den doppelten Jahren fertig wurde : Tabellenkalkulation Rangliste nach Jahr

(Meine Formeln beginnen aufgrund der Überschriften in Zeile 2)
Spalte C-Formel:

=RANK.EQ(B2,B$2:B$15,1) 

Es ist wichtig zu wissen, wie das Ranking funktioniert. Wenn drei Positionen in Position Nummer 5 vorhanden sind, erhalten sie alle einen Rang von 5, und es gibt keine Elemente mit einem Rang von 6 oder 7. Die nächste Position ist ein Rang von 8.

Spalte D-Formel:
in der ersten Zelle

=C2 

und in nachfolgenden Zellen

=C3+COUNTIF(C$2:C2,C3) 

Dadurch wird das doppelte Ranking entfernt. Das Ranking wird um 1 erhöht, wenn es oben in der Liste einen doppelten Rang gibt. Diese doppelte Zahl 5 erhält also den Rang 6 & 7.

Spalte E ist einfach eine Liste von fortlaufenden Zahlen, die sich leicht selbst füllen lässt.

Spalte F Formel bringt alles zusammen:

=INDEX($A$2:$A$15,MATCH(E2,$D$2:$D$15,0)) 

Jedenfalls wollte ich teilen, was ich hatte, da es funktioniert und etwas anders ist. Aber wahrscheinlich ist die Antwort von Garry's Student besser, da weniger Spalten verwendet werden, um dorthin zu gelangen. (Möglicherweise könnte ich einige kombinieren und mit meiner Methode auch weniger Spalten verwenden.)