
Eu tenho uma planilha Excel com linhas de dados conforme mostrado abaixo. Existe um código com o nome do produto e depois um número.
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
Como faço para dividir cada campo em uma coluna?
Tentei "dividir o texto em colunas" no Excel usando a opção delimitado e separando por espaços, mas o fato de alguns nomes de produtos terem mais de uma palavra fazia com que alguns números ficassem na coluna errada. Por exemplo,
Code Name Number
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
Este é o resultado desejado:
Code Name Number
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
A ajuda é apreciada!
Responder1
Use FIND-function
para determinar a posição do seu primeiro e último espaço. Depois disso, use MID-function
para dividir seus dados em três partes. Se você conhece a posição dos seus espaços, a divisão é fácil. Encontrar o primeiro espaço também é trivial, pois FIND
vai da esquerda para a direita. Infelizmente, não há como dizer ao Excel para pesquisar da direita para a esquerda.
Então a parte difícil é determinar o último espaço! Aqui usamos uma fórmula de matriz.
Para inserir uma fórmula de matriz, cole a fórmula em uma célula e não pressione Enter.
Em vez disso, você pressiona Ctrl+ Shift+ Enter.
{=MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A))}
Se feito com sucesso, o Excel acrescentará uma chave inicial e final.
Insira todas as fórmulas nas células fornecidas e useautofill down
A2: seus dados vão aqui
B2: =FIND(" ",A2,1)
C2: =MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A))
<-array formula!
D2: =MID(A2,1,B2-1)
E2: =MID(A2,B2+1,C2-B2-1)
F2:=MID(A2,C2+1,LEN(A2))
Tela de resultados
Responder2
Se um algoritmo adequado retornar:
- Código = A primeira palavra
- Produto = Tudo entre a primeira e a última palavra
- Número = A última palavra
Então as fórmulas a seguir devem funcionar.
Suponha que seus dados estejam em A1:
Code: =LEFT(TRIM(A1),FIND(" ",TRIM(A1))-1)
Product: =TRIM(MID(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)),100,LEN(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)))-198))
Number: =TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)),99))