Divide uma string em uma célula no Excel usando números como o divisor

3

Exemplo de valor da célula: Presidente & Fundador, Millennium Pain Center, 1998 - presente.

Eu gostaria que fosse analisada (dividida) em "Presidente e Fundador, Millenium Pain Center", e em outra célula, "1998-presente".

Isso é factível?

    
por wizlog 08.08.2011 / 22:02

2 respostas

4

É factível com uma fórmula de matriz. Aqui está uma solução baseada em um algoritmo em o site do MS Office. Eu modifiquei a fórmula para levar string length em consideração para que você possa usá-la com outras frases.

Supondo que A1 contenha sua string ("President & Founder, Millennium Pain Center, 1998- presente"), Ctrl + Shift + Enter isto em B1 :

=MATCH(TRUE,ISNUMBER(1*MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)),0)

Ele retornará o índice do primeiro número que ocorre na string. Por exemplo, ele retornará 46.

Insira isso (como uma fórmula normal) em C1 :

=MID(A1,1,B1-1)

Ele retornará Presidente & Fundador, Millennium Pain Center,

Insira isso (como uma fórmula normal) em D1 :

=RIGHT(A1,LEN(A1)-B1+1)

Ele retornará 1998 - presente

    
por 08.08.2011 / 22:53
6

Estes funcionarão, eles são fórmulas de matriz, então você deve usar CTRL-SHIFT-ENTER quando você inseri-los na célula. O número de US $ 40 precisa ser grande o suficiente para sua maior string:

=LEFT(A1, MATCH(TRUE,ISNUMBER(1*MID(A1, ROW($1:$40), 1)),0)-1)

e

=RIGHT(A1, LEN(A1) - MATCH(TRUE,ISNUMBER(1*MID(A1, ROW($1:$40), 1)),0) +1)

A instrução MID está criando uma matriz de todos os caracteres da string.
A declaração ISNUMBER, em seguida, transforma isso em uma matriz TRUE / FALSE.
A declaração MATCH, em seguida, localiza o primeiro verdadeiro, portanto, o primeiro número.
Então é só uma questão de análise.

    
por 08.08.2011 / 22:32