Fórmula do Excel: Dividir frase em palavras
No Excel, como sabemos, a opção Texto em Colunas permite dividir uma frase em células com base num delimitador. Contudo, por vezes poderá preferir utilizar uma fórmula para realizar esta tarefa. Neste tutorial, é-lhe fornecida uma fórmula matricial capaz de o fazer.
Fórmula genérica:
| =MID(" "&,$TXT&," ", SMALL(IF(ISERROR(SEARCH(MID(" "&,$TXT&," ", ROW($1:$99), 1), " ")), "", ROW($1:$99)+1), COLUMN(A1)), SMALL(IF(ISERROR(SEARCH(MID(" "&,$TXT&," ", ROW($1:$99), 1), " ")), "", ROW($1:$99)), COLUMN(A1)+1)-SMALL(IF(ISERROR(SEARCH(MID(" "&,$TXT&," ", ROW($1:$99), 1), " ")), "", ROW($1:$99)), COLUMN(A1))-1) |
Argumentos
| Number: the sentence or text string you want to split to words in separated cells. |
Como funciona esta fórmula
Tomando a célula B3 como exemplo, pode utilizar a seguinte fórmula:
| =MID(" "&,$B3&," ", SMALL(IF(ISERROR(SEARCH(MID(" "&,$B3&," ", ROW($1:$99), 1), " ")), "", ROW($1:$99)+1), COLUMN(A1)), SMALL(IF(ISERROR(SEARCH(MID(" "&,$B3&," ", ROW($1:$99), 1), " ")), "", ROW($1:$99)), COLUMN(A1)+1)-SMALL(IF(ISERROR(SEARCH(MID(" "&,$B3&," ", ROW($1:$99), 1), " ")), "", ROW($1:$99)), COLUMN(A1))-1) |
Prima Shift + Ctrl + Enter para extrair a primeira palavra e, em seguida, arraste a alça de preenchimento para a direita até que todas as palavras sejam extraídas.

Explicação
MIDFunção extrai uma subcadeia de uma cadeia de texto com base na posição inicial e no número de caracteres especificados.
ROWfunção devolve o número da linha; aqui definimo-la para devolver um vetor de 1 a 99.
Então a fórmula MID(« »&$B2&« », ROW($1:$99), 1)
=MID(" Class A Grade 3 Lily Core", {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99}, 1)
={« »;«C»;«l»;«a»;«s»;«s»;« »;«A»;« »;«G»;«r»;«a»;«d»;«e»;« »;"3";« »;«L»;«i»;«l»;«y»;« »;«C»;«o»;«r»;«e»;« »;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;
«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»;«»}
SEARCH devolve a posição de um carácter ou texto específico numa cadeia de texto fornecida. Se a cadeia não for encontrada, a função devolve um valor de erro.
A fórmula SEARCH(MID(« »&$B3&« », ROW($1:$99), 1), « »)
={1;#VALOR!;#VALOR!;#VALOR!;#VALOR!;#VALOR!;1;#VALOR!;1;#VALOR!;#VALOR!;
#VALOR!;#VALOR!;#VALOR!;1;#VALOR!;1;#VALOR!;#VALOR!;#VALOR!;#VALOR!;1;
#VALOR!;#VALOR!;#VALOR!;#VALOR!;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;
1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;
1;1;1;1;1}
A função ISERROR devolve VERDADEIRO se o valor for um erro.
Então a fórmula ISERROR(SEARCH(MID(« »&$B3&« », ROW($1:$99), 1), « »))
={FALSO;VERDADEIRO;VERDADEIRO;VERDADEIRO;VERDADEIRO;VERDADEIRO;FALSO;VERDADEIRO;FALSO;VERDADEIRO;VERDADEIRO;VERDADEIRO;VERDADEIRO;
VERDADEIRO;FALSO;VERDADEIRO;FALSO;VERDADEIRO;VERDADEIRO;VERDADEIRO;VERDADEIRO;FALSO;VERDADEIRO;VERDADEIRO;VERDADEIRO;VERDADEIRO;
FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;
FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;
FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;
FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;
FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;
FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;
FALSO}
IFfunção testa uma condição específica. Tem três argumentos: o primeiro deve ser uma expressão lógica. Se o primeiro argumento for «VERDADEIRO», é apresentado o segundo; se for «FALSO», é apresentado o terceiro.
A fórmula IF(ISERROR(SEARCH(MID(« »&$B3&« », ROW($1:$99), 1), « »)), «», ROW($1:$99))
={1;«»;«»;«»;«»;«»;7;«»;9;«»;«»;«»;«»;«»;15;«»;17;«»;«»;«»;«»;22;«»;«»;«»;«»;27;28;29;30;31;32;33;34;35;
36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;
64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;
93;94;95;96;97;98;99}
SMALL função devolve então o menor valor no vetor.
COLUMNfunção devolve o número da coluna em que a fórmula se encontra ou o número da coluna da referência indicada.
Então
SMALL(IF(ISERROR(SEARCH(MID(« »&$B3&« », ROW($1:$99), 1), « »)), «», ROW($1:$99)), COLUMN(A1))
={1}
Então a fórmula
SMALL(IF(ISERROR(SEARCH(MID(« »&$B3&« », ROW($1:$99), 1), « »)), «», ROW($1:$99)), COLUMN(A1)+1)- SMALL(IF(ISERROR(SEARCH(MID(« »&$B3&« », ROW($1:$99), 1), « »)), «», ROW($1:$99)), COLUMN(A1))
={7-1}
={6}
Então a fórmula
MID(« »&$B3&« », SMALL(IF(ISERROR(SEARCH(MID(« »&$B3&« », ROW($1:$99), 1), « »)), «», ROW($1:$99)+1), COLUMN(A1)), SMALL(IF(ISERROR(SEARCH(MID(« »&$B3&« », ROW($1:$99), 1), « »)), «», ROW($1:$99)), COLUMN(A1)+1)-SMALL(IF(ISERROR(SEARCH(MID(« »&$B3&« », ROW($1:$99), 1), « »)), «», ROW($1:$99)), COLUMN(A1))-1)
=MID(« »&,$B3&,« »,2,6-1)
={Class}
Ficheiro de exemplo
Clique para descarregar o ficheiro de exemplo
Fórmulas relacionadas
- Extrair da direita até ao carácter
Apresentamos aqui a fórmula para extrair texto a partir do lado direito de uma cadeia até ao primeiro carácter especificado. - Cortar texto até N palavras
Apresentamos aqui a fórmula para extrair as primeiras N palavras de uma cadeia de texto. - Adicionar zeros à esquerda para fixar o comprimento
Este tutorial apresenta fórmulas para adicionar zeros à esquerda e garantir que todo o texto tenha o mesmo comprimento. - Separar euros e cêntimos
Separe euros e cêntimos em duas colunas utilizando fórmulas no Excel.
Funções relacionadas
- Função EXT.TEXTO
Extrai uma parte do texto de um valor de célula com base na posição inicial e no número de caracteres. - Função COL
Devolve o número da coluna em que a fórmula está inserida ou o número da coluna especificada. - Função LIN
Obtém o número da linha. - Função PROCURAR
Localiza a posição de um carácter ou subcadeia específica numa cadeia de texto indicada. - Função SE
Testa uma condição específica.
As Melhores Ferramentas de Produtividade para o Office
Kutools for Excel – Ajuda-o a destacar-se da multidão
Kutools for Excel Oferece mais de 300 funcionalidades,garantindo que tudo o que precisa está a apenas um clique…
Office Tab – Ative a leitura e edição com separadores no Microsoft Office (incluindo o Excel)
- Um segundo para alternar entre dezenas de documentos abertos!
- Reduza centenas de cliques diários e diga adeus à tendinite do rato.
- Aumente a sua produtividade em 50 % ao visualizar e editar vários documentos simultaneamente.
- Traz uma navegação eficiente com separadores ao Office (incluindo o Excel), tal como no Chrome, Edge e Firefox.