
Fórmula genérica
=SORTBY(data,LEN(data),-1)
Resumo
Para classificar sequências de texto por comprimento em ordem crescente ou decrescente, você pode usar uma fórmula baseada nas funções SORTBY e LEN. No exemplo mostrado, a fórmula em D5 é:
=SORTBY(B5:B15,LEN(B5:B15),-1)
que classifica os valores de texto na coluna B pelo comprimento da string, em ordem decrescente.
Explicação
A função SORTBY pode classificar valores em um intervalo com uma matriz que não existe na planilha.
Neste exemplo, queremos classificar os valores em B5: B15 pelo número de caracteres que cada string contém. Trabalhando de dentro para fora, usamos a função LEN para obter o comprimento de cada valor:
LEN(B5:B15) // get length of all strings
Como fornecemos a LEN uma matriz com 11 valores, obtemos uma matriz com 11 comprimentos:
(5;7;14;6;5;13;9;4;8;6;11)
Cada número representa o comprimento de caracteres de um valor em B5: B11.
Esta matriz é retornada diretamente para a função SORTBY como o argumento by_array1:
=SORTBY(B5:B15,(5;7;14;6;5;13;9;4;8;6;11),-1)
A função SORTBY permite a classificação com base em um ou mais arrays "classificar por", desde que as dimensões sejam compatíveis com os dados de origem. Nesse caso, há 11 linhas nos dados de origem e 11 linhas na matriz retornada por LEN, portanto, o requisito é atendido.
A função SORTBY usa a matriz de comprimentos retornada por LEN para classificar os valores em B5: B15 e retorna os resultados classificados para D5 em uma matriz dinâmica. Como a ordem de classificação é definida como -1, os valores são classificados em ordem reversa (decrescente) por comprimento. Use um 1 positivo para classificar em ordem crescente.