
Fórmula genérica
=SORTBY(rng,MATCH(rng,custom,0))
Resumo
Para classificar uma lista em uma ordem personalizada, você pode combinar a função SORTBY com a função MATCH. No exemplo mostrado, a tabela está sendo classificada pela coluna "grupo" na ordem mostrada nas células J5: J7. A fórmula em D5 é:
=SORTBY(B5:D14,MATCH(D5:D14,custom,0))
onde "custom" é o intervalo nomeado J5: J7 que define a ordem de classificação desejada.
Explicação
Neste exemplo, estamos classificando uma tabela com 10 linhas e 3 colunas. No intervalo J5: J7 (o intervalo denominado "personalizado"), as cores "vermelho", "azul" e "verde" são listadas na ordem de classificação desejada. O objetivo é classificar a tabela usando valores na coluna Grupo nesta mesma ordem personalizada.
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, não podemos usar o intervalo nomeado "personalizado" diretamente no SORTBY, porque ele contém apenas 3 linhas, enquanto a tabela contém 10 linhas.
No entanto, para criar uma matriz com 10 linhas que pode ser usada como uma matriz "classificar por", podemos usar a função MATCH como esta:
MATCH(D5:D14,custom,0)
Observe que estamos passando os valores de Grupo em D5: D14 como valores de pesquisa e usando "custom" como a tabela de pesquisa. O resultado é uma matriz como esta:
(2;1;3;3;2;3;1;2;3;1)
Cada valor na matriz representa a posição numérica de determinado valor de grupo em "custom", portanto, há 10 linhas representadas. Esta matriz é passada para a função SORTBY como o argumento by_array1. SORTBY classifica a tabela na ordem "vermelho", "azul", "verde" e retorna o resultado como um intervalo de dispersão começando na célula D5.