Aqui está uma fórmula normal simples que funcionará em qualquer versão do Excel:
=MID(B2,FIND("§",SUBSTITUTE(LEFT(B2,FIND(":",B2))," ","§",LEN(LEFT(B2,FIND(":",B2)))-LEN(SUBSTITUTE(LEFT(B2,FIND(":",B2))," ",""))-1))+1,FIND(",",B2,FIND("§",SUBSTITUTE(LEFT(B2,FIND(":",B2))," ","§",LEN(LEFT(B2,FIND(":",B2)))-LEN(SUBSTITUTE(LEFT(B2,FIND(":",B2))," ",""))-1)))-FIND("§",SUBSTITUTE(LEFT(B2,FIND(":",B2))," ","§",LEN(LEFT(B2,FIND(":",B2)))-LEN(SUBSTITUTE(LEFT(B2,FIND(":",B2))," ",""))-1))-1)
Ele retornará corretamente a palavra antes do primeiro dois pontos se essa palavra for seguida por uma vírgula, independentemente de quantos outros dois pontos com um par de palavras antes deles estão na cadeia de dados. / p>
A falha com esta fórmula é que se a palavra antes da palavra antes do primeiro cólon não for seguida por uma vírgula, ela retornará um erro.
Explicação:
Esta fórmula é mais fácil de entender se você usa quatro células auxiliares:
Asfórmulasnascélulassão:
B3
:
=LEFT(B2,FIND(":",B2))
B4
:
=LEN(B3)-LEN(SUBSTITUTE(B3," ",""))
B5
:
=SUBSTITUTE(B3," ","§",B4-1)
B6
:
=FIND("§",B5)
B7
:
=MID(B2,B6+1,FIND(",",B2,B6)-B6-1)
A solução completa é simplesmente o resultado de inserir as fórmulas para B3
, B4
, B5
e B6
em B7
.
Notas:
Na verdade, manter as quatro células auxiliares, em vez de transformar as fórmulas em uma, tornaria a fórmula muito mais fácil de manter.
Melhor ainda seria manter a fórmula das quatro células auxiliares em uma planilha de "desenvolvedor", facilitar as modificações e usar a fórmula agregada na planilha de produção.