Hallo Excel Gurus ,
ich möchte eine Spalte so sortiert bekommen, dass die Höhe zahlen in der Mitte kommen und dann absteigen.
Vor: 1111 22 3333 44 5555
Danach: 112334555433211
Geht das? Hab bereits mit Median und Rang versucht, kriege aber nicht hin.
Danke euch vielmals
Hallo,
wie sehen die anderen Zahlen aus? Ist es immer diese Aufteilung 4 2 4 2 4 1111 22 3333 44 5555
Ein paar Beispiele bitte.
(07.05.2023, 18:22)Kalk schrieb: [ -> ]Hallo,
wie sehen die anderen Zahlen aus? Ist es immer diese Aufteilung 4 2 4 2 4 1111 22 3333 44 5555
Ein paar Beispiele bitte.
Hallo Kalk,gute Frage.
Die Zahlenvorkommen(Anzahl) ist immer durch 2 teilbar ,also 3 3(Also Anzahl= 2) ,3 3 3 3 ,3 3 3 3,9 9 9 9 9 9(Anzahl= 6) usw.
Beispiel: 2 2 2 2,6 6,1 1 1 1 1 1 1 1,3 3 3 3,12 12 ,8 8.
Sortiert sollten dann so aussehen. 1111223368
12128633221111.Kein PLan ob sowas möglich ist
=LET(x;SORTIEREN(A1:A22);a;KÜRZEN(EINDEUTIG(x+KÜRZEN(SEQUENZ(ZEILEN(x);;0)/2)%));VSTAPELN(SORTIEREN(a);SORTIEREN(a;;-1)))
Hier keine Fehlermeldung enthalten/nötig. Denn: Bei enthaltenen "Nichtpaaren" (paarweise(s) Sortierung oder Auftreten aber nicht erforderlich) wird der Output länger, als der Input, und der Input ist dann falsch.
=LET(x;SORTIEREN(A9:A22);b;ZEILEN(x);a;LAMBDA(a;s;INDEX(x;SEQUENZ(b/2;;a;s)));VSTAPELN(a(2;2);a(b-1;-2)))
ist kürzer und stellt auch Daten mit enthaltenen Nichtpaaren ohne Verlängerung dar: Dann wird aus
1;2;3;4;5;6;7;8;9;10;11;12;13;14 (egal, ob sortiert oder nicht)
2;4;6;8;10;12;14;13;11;9;7;5;3;1 (bei ungerader Anzahl wird der niedrigste Wert unterschlagen)
Einen habe ich noch. Mit
=LET(a;SORTIEREN(A9:A22);b;ZEILEN(a);c;(REST(SEQUENZ(b);4)+1>2)%;d;LAMBDA(e;s;INDEX(SORTIERENNACH(a;c);SEQUENZ(b/2;;e;s)));VSTAPELN(d(1;1);d(b;-1)))
wird "tiebreak"mäßig die Sortierung zugeteilt, so dass bei einer gleichmäßigen Zahlenreihe die SUMME der oberen (52) und unteren (53) Hälfte eine möglichst kleine Differenz hat:
1;4;5;8;9;12;13;14;11;10;7;6;3;2
Die Formel in #5 ist immerhin schon so allgemeingültig, dass ich direkt zur Mitte auch absteigend sortieren kann. Benenne ...
=LAMBDA(Sortierspalte;[Sortierrichtung];LET(a;SORTIEREN(Sortierspalte;;Sortierrichtung);
b;ZEILEN(a);
c;(REST(SEQUENZ(b);4)+1>2)%;
d;LAMBDA(e;s;INDEX(SORTIERENNACH(a;c);SEQUENZ(b/2;;e;s)));
VSTAPELN(d(1;1);d(b;-1))))
... mit ROOFSORT und verwende ...
=ROOFSORT(A9:A22) für einen "Dachsort" 1;4;5;8;9;12;13;14;11;10;7;6;3;2
=ROOFSORT(A9:A22;-1) für einen "Grabensort" 14;11;10;7;6;3;2;1;4;5;8;9;12;13
Lupo1 Du bist einfach KLASSE!
Lieben Dank für deine Mühe und deine Hilfsbereitschaft!
Dank dir funktioniert alles super und ich habe durch dich eine Menge gelernt.
So sollte Unterstützung immer aussehen.
Nochmals herzlichen Dank dafür!!!
Beste Grüße.