
Generisk formel
=SORTBY(data,LEN(data),-1)
Resumé
For at sortere tekststrenge efter længde i stigende eller faldende rækkefølge kan du bruge en formel baseret på funktionerne SORTBY og LEN. I det viste eksempel er formlen i D5:
=SORTBY(B5:B15,LEN(B5:B15),-1)
der sorterer tekstværdierne i kolonne B efter strenglængde i faldende rækkefølge.
Forklaring
SORTBY-funktionen kan sortere værdier i et interval med en matrix, der ikke findes på regnearket.
I dette eksempel vil vi sortere værdierne i B5: B15 efter antallet af tegn, hver streng indeholder. Når vi arbejder indefra og ud, bruger vi LEN-funktionen til at få længden af hver værdi:
LEN(B5:B15) // get length of all strings
Fordi vi giver LEN en matrix med 11 værdier, får vi en matrix med 11 længder:
(5;7;14;6;5;13;9;4;8;6;11)
Hvert tal repræsenterer tegnlængden af en værdi i B5: B11.
Denne matrix returneres direkte til SORTBY-funktionen som argumentet by_array1:
=SORTBY(B5:B15,(5;7;14;6;5;13;9;4;8;6;11),-1)
SORTBY-funktionen tillader sortering baseret på en eller flere "sorter efter" arrays, så længe dimensioner er kompatible med kildedataene. I dette tilfælde er der 11 rækker i kildedataene og 11 rækker i arrayet returneret af LEN, så kravet er opfyldt.
SORTBY-funktionen bruger den række af længder, der returneres af LEN til at sortere værdierne i B5: B15, og returnerer sorterede resultater til D5 i et dynamisk array. Da sorteringsrækkefølgen er indstillet til -1, sorteres værdierne i omvendt (faldende) rækkefølge efter længde. Brug en positiv 1 til at sortere i stigende rækkefølge.