Gibt es eine Möglichkeit, Ziffern innerhalb einer Zelle zu sortieren?

Gibt es eine Möglichkeit, Ziffern innerhalb einer Zelle zu sortieren?

Ich möchte wissen, ob es eine Excel-Funktion oder eine Formel gibt, mit der Ziffern innerhalb einer Zelle sortiert werden können.

Wenn beispielsweise der Wert von A1 ist 6193254807und B1 unsere Formel mit den Parametern auf aufsteigende Sortierung hat, sollte B1 gleich sein 0123456789(einschließlich führender Nullen). Wenn die Parameter so eingestellt sind, dass absteigend sortiert wird, sollte B1 natürlich gleich sein 9876543210.

Gibt es eine Möglichkeit, dies zu tun, ohne in VBScript, Makros oder etwas ähnlich Exotisches einzutauchen?

Antwort1

Dies ist mit einer Matrixformel möglich. Vorausgesetzt, die ursprüngliche Zahl ist inA1, geben Sie einen der folgenden Ausdrücke in eine leere Zelle ein und bestätigen Sie mit Ctrl+ Shift+ Enter:

Aufsteigend:

=REPT(0,LEN(A1)-LEN(SUBSTITUTE(A1,0,"")))&
 SUM(POWER(10,ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,""))))-1)*
     LARGE(INT(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),
            ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,""))))))

Absteigend:

=SUM(POWER(10,ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,""))))-1)*
     SMALL(INT(MID(SUBSTITUTE(A1,0,""),ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,"")))),1)),
           ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,""))))))
 &REPT(0,LEN(A1)-LEN(SUBSTITUTE(A1,0,"")))

Beispiel:

Bildbeschreibung hier eingeben

Jede Formel nimmt dieNdie größte oder kleinste Zahl in der Zelle und multipliziert sie mit einer Zehnerpotenz entsprechend ihrem „Rang“ (d. h. weist ihr einen neuen Stellenwert zu), die dann summiert werden, um die „neu geordnete“ Zahl zu erhalten. Wenn unsere ursprüngliche Zahl beispielsweise ist, 231wären die allgemeinen Berechnungsschritte für die erste Formel wie folgt:

=sum(1*power(10,2), 2*power(10,1), 3*power(10,0))  
=sum(100,20,3)
=123

Das REPT()Segment der Formel kümmert sich um alle führenden oder nachfolgenden Nullen.

Das Ergebnis liegt im Textformat vor. Ich dachte, das wäre eine gute Idee, da es eine Begrenzung gibt, wie viele Ziffern man in eine Zelle eingeben kann (ich empfehle, Folgendes zu lesen:diese SuperUser-Frage).

Wenn Sie mit dem Ergebnis Berechnungen durchführen möchten, fügen Sie es einfach 0+am Anfang der Formel ein, um das Ergebnis in eine Zahl umzuwandeln.

verwandte Informationen