Extraia uma palavra inteira de uma string contendo uma letra ou caractere específico

Extraia uma palavra inteira de uma string contendo uma letra ou caractere específico

Gostaria de extrair apenas a palavra de uma célula que contenha 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

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 apenas extrai os dados à direita do símbolo ("=") com os seguintes resultados. Visto que estou buscando uma solução que extraia a palavra inteira (direita e esquerda) de onde está o símbolo ("=").

Responder1

Tente o seguintevocêSerDrefinadoFunçã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

insira a descrição da imagem aqui

Funções definidas pelo usuário (UDFs) são muito fáceis de instalar e usar:

  1. ALT-F11 abre a janela VBE
  2. ALT-I ALT-M abre um novo módulo
  3. cole o material e feche a janela do VBE

Se você salvar a pasta de trabalho, a UDF será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Para remover a UDF:

  1. abra a janela VBE como acima
  2. limpar o código
  3. feche a janela do VBE

Para usar a UDF do Excel:

=é igual(A1)

Para saber mais sobre macros em geral, consulte:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

e

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

e para obter detalhes sobre UDFs, consulte:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

As macros devem estar habilitadas para que isso funcione!

EDITAR#1:

Você pode fazer isso semVBA, usando a mesma metodologia. Com dados emA1, emC1digitar:

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

e copie. Então emB1digitar:

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

insira a descrição da imagem aqui

Responder2

O Excel possui várias funções de texto que podem ajudá-lo a extrair uma palavra ou 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 sequência de texto: “A criatividade requer coragem para abandonar as certezas”

1. Para obter os primeiros 5 caracteres da string, usamos a função LEFT: =LEFT(A1,5) O resultado é “Creat”

2. Para obter os últimos 11 caracteres da string, usamos a função RIGHT: =RIGHT(A1,11) O resultado é “certezas”

3. Para obter 7 caracteres da string começando na 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: =LEFT(A1,(FIND(” “,A1)-1)) O resultado é “Criatividade”.

- Veja mais em:http://www.exceldigest.com/myblog/2009/02/01/how-to-extract-text-from-another-text-string/#sthash.yNDHU7Xe.dpuf

informação relacionada