Extrai uma palavra inteira da string contendo uma letra ou caractere específico

3

Eu gostaria de extrair apenas a palavra de uma célula que contém um caractere específico ("=") dentro do texto.

A2:  Dolly made me a homemade=cake and some muffins
A3:  we had cheese=cake for dinner
A4: Everyone loves how the bakery makes some awesome=cakes

Eu gostaria que o seguinte na coluna (A2: A4) fornecesse os seguintes resultados na coluna (B2: B4).

B2:  homemade=cake
B3:  cheese=cake
B4:  awesome=cakes

Eu tentei a seguinte solução com funções de planilha.

A2: Johnny made his own dinner=lastnight and then cleaned the kitchen

=TRIM(TRIM(IFERROR(RIGHT(SUBSTITUTE(LEFT(A2,SEARCH(" ",A2&" ",SEARCH("=",A2))-1)," ",REPT(" ",LEN(A2))),LEN(C246)),""))),""),

Esta fórmula não funciona como você pode ver, pois só extrai dados à direita do símbolo ("=") com os seguintes resultados. Enquanto isso, estou procurando uma solução que extrairá a palavra inteira (direita e esquerda) de onde o símbolo ("=").

    
por user498469 17.09.2015 / 15:36

2 respostas

1

Tente o seguinte U ser D efinado F unção (UDF)

Public Function Equals(inpt As String) As String
   Equals = ""
   ary = Split(Application.WorksheetFunction.Trim(inpt), " ")
   For Each a In ary
      If InStr(1, a, "=") > 0 Then
         Equals = a
         Exit Function
      End If
   Next a
End Function

FunçõesDefinidaspeloUsuário(UDFs)sãomuitofáceisdeinstalareusar:

  1. ALT-F11exibeajaneladoVBE
  2. ALT-IALT-Mabreumnovomódulo
  3. coleomaterialefecheajaneladoVBE

Sevocêsalvarapastadetrabalho,aUDFserásalvacomela.SevocêestiverusandoumaversãodoExcelposteriora2003,deverásalvaroarquivocomo.xlsmemvezde.xlsx

PararemoveroUDF:

  1. abrirajaneladoVBEcomoacima
  2. limpeocódigo
  3. fecheajaneladoVBE

ParausaroUDFdoExcel:

=éiguala(A1)

Parasabermaissobremacrosemgeral,consulte:

link

e

link

e para detalhes sobre UDFs, consulte:

link

As macros devem estar ativadas para que isso funcione!

EDIT # 1:

Você pode fazer isso sem VBA , usando a mesma metodologia. Com dados em A1 , em C1 digite:

=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

e copie. Então, em B1 , digite:

=INDEX(C1:IV1,MATCH("*=*",C1:IV1,0))

    
por 17.09.2015 / 15:50
-1

O Excel tem várias funções de texto que podem ajudá-lo a extrair uma palavra ou um texto de outra sequência de texto. Qual função, ou combinação de funções, usar depende da sua situação. Exemplo: Suponha que a célula A1 tenha a cadeia de texto: “A criatividade exige coragem para abandonar as certezas”

1. Para obter os primeiros 5 caracteres da string, usamos a função LEFT: = ESQUERDA (A1,5) O resultado é "Creat" 2. Para obter os últimos 11 caracteres da string, usamos a função RIGHT: = DIREITO (A1,11) O resultado é "certezas" 3. Para obter 7 caracteres da string começando com a posição 10, usamos a função MID: = MID (A1,10,7) O resultado é "y requi". 4. Para obter a primeira palavra da string, usamos as funções LEFT e FIND: = ESQUERDA (A1, (FIND ("", A1) -1)) O resultado é "Criatividade". - Veja mais em: link     
por 17.09.2015 / 15:52