Temos uma planilha grande do Excel com um monte de fragrâncias. Estamos usando isso para importar para o nosso site. Muitas delas são a mesma fragrância, mas frascos de tamanhos diferentes.
A coluna principal que estamos usando para classificar tem o nome da fragrância seguido pelo tamanho em ml. Isso resulta em uma string com um número em direção ao final, mas não até o final:Fragrance 1 30ml
No Excel 2016, se para uma fragrância específica há um frasco de 30ml e 50ml, então está em ordem porque o primeiro caractere diferente, o "3" e o "5" classificam corretamente. Mas é claro, quando você tem um que tem frascos de 100ml ou 200ml, eles são classificados acima dos frascos de 30ml e 50ml, tornando a ordem incorreta. Como o site importa diretamente desta planilha, precisamos que o Excel ordene isso corretamente, por nome e depois por número crescente.
Existe uma maneira de classificá-los de alguma forma para que sejam os menores primeiro (mesmo que eu precise adicionar fórmulas em novas colunas ao lado)?
Tenha em mente que há muitas colunas com outras informações sobre cada produto, então será necessário filtrá-las para manter os outros atributos alinhados com o mesmo produto.
Exemplo de como é:
Garrafa |
---|
Fragrância 1 100ml |
Fragrância 1 200ml |
Fragrância 1 30ml |
Fragrância 1 50ml |
Você precisa extrair os números e ordenar por eles. Neste caso, o número está entre o último espaço e "ml". Então aqui podemos usar a fórmula:
Na versão 2016, você pode usar colunas auxiliares. Na primeira (col.
G
na captura de tela) colocamos um fragmento denotando o nome base, na segunda (col.L
) – a capacidade da embalagem (número). Usei as fórmulas:col.
G
:=LEFT(A9,SEARCH("ml",A9)-LEN(L9)-2)
col.
L
:=--RIGHT(SUBSTITUTE(LEFT(A9,SEARCH("ml",A9)-1)," ",REPT(" ",10)),10)
Selecione todos os dados e execute uma classificação padrão de acordo com dois critérios: o primeiro é o nome da coluna
G
, o segundo é o número da colunaL
.As colunas auxiliares podem ser ocultadas.