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
Funções definidas pelo usuário (UDFs) são muito fáceis de instalar e usar:
- ALT-F11 abre a janela VBE
- ALT-I ALT-M abre um novo módulo
- 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:
- abra a janela VBE como acima
- limpar o código
- 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))
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