Fórmula do Excel para extrair texto

0

Eu tenho o seguinte na célula A1:

NEW ORLEANS (0-0) at GREEN BAY (0-0)

Eu gostaria que uma fórmula fosse colocada na célula B1 "NEW ORLEANS" e na C1 "GREEN BAY.

    
por Mike 08.09.2011 / 16:28

2 respostas

2

Para obter o primeiro time:

=LEFT(A1,FIND("(",A1)-2)

Para obter o segundo time:

=MID(A1,FIND(" at ",A1)+4,FIND("(",A1,FIND(")",A1))-FIND(" at ",A1)-5)
    
por 08.09.2011 / 17:40
2

Então, se você tivesse essa célula em A1, então isso em B1:

=LEFT(A1, FIND("(", A1)-2)

E isso em C1:

=MID(A1, FIND(")", A1) + 4, LEN(A1)-FIND(")", A1)-9)

Observe que isso depende muito da amostra que você forneceu, representando o layout do texto nas outras células. Ele é baseado em encontrar o Parêntese na string. Na verdade, eu acabei de perceber que provavelmente vai quebrar se os numerais no segundo (0-0) forem duplicados. Para ter em conta que você teria que procurar o segundo par de parentes para determinar o comprimento para a chamada Mid (). Para ser honesto, se este fosse o meu problema para resolver, então eu acho que iria escrever uma macro VBA usando split.

Então, via VBA, eu faria algo assim. Adicione estas duas funções:

Function GetFirstTeam()
    Application.Volatile
    GetFirstTeam = Trim(Split(ActiveCell.Offset(0, -1), "(")(0))
End Function

Function GetSecondTeam()
    Application.Volatile
    GetSecondTeam = Trim(Split(Split(ActiveCell.Offset(0, -2), " at ")(1), "(")(0))
End Function

Em seguida, em B1:

=GetFirstTeam()

E em C1:

=GetSecondTeam()
    
por 08.09.2011 / 16:47