Me gustaría extraer sólo la palabra de una celda que contiene un carácter específico ("=") dentro del 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
Me gustaría que lo siguiente de la columna (A2:A4) proporcione los siguientes resultados en la columna (B2:B4).
B2: homemade=cake
B3: cheese=cake
B4: awesome=cakes
Probé la siguiente solución con funciones de hoja de trabajo.
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 no funciona como puedes ver, ya que solo extrae datos a la derecha del símbolo ("=") con los siguientes resultados. Mientras que estoy buscando una solución que extraiga la palabra completa (derecha e izquierda) de donde está el símbolo ("=").
Respuesta1
Prueba lo siguienteUd.serDrefinadoFunción(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
Las funciones definidas por el usuario (UDF) son muy fáciles de instalar y utilizar:
- ALT-F11 abre la ventana VBE
- ALT-I ALT-M abre un módulo nuevo
- pegue las cosas y cierre la ventana de VBE
Si guarda el libro de trabajo, la UDF se guardará con él. Si está utilizando una versión de Excel posterior a 2003, debe guardar el archivo como .xlsm en lugar de .xlsx.
Para eliminar la UDF:
- abrir la ventana VBE como arriba
- borrar el código
- cerrar la ventana VBE
Para utilizar la UDF desde Excel:
=es igual a(A1)
Para obtener más información sobre las macros en general, consulte:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
y
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
y para obtener detalles sobre las UDF, consulte:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
¡Las macros deben estar habilitadas para que esto funcione!
EDITAR #1:
Puedes hacer esto sinVba, utilizando la misma metodología. con datos enA1, enC1ingresar:
=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:A)*999-998,999))
y copiar. Luego enB1ingresar:
=INDEX(C1:IV1,MATCH("*=*",C1:IV1,0))
Respuesta2
Excel tiene una serie de funciones de texto que pueden ayudarle a extraer una palabra o un texto de otra cadena de texto. Qué función o combinación de funciones utilizar depende de su situación. Ejemplo: Supongamos que la celda A1 tiene la cadena de texto: “La creatividad requiere el coraje de dejar de lado las certezas”
1. Para obtener los primeros 5 caracteres de la cadena, usamos la función IZQUIERDA: =IZQUIERDA(A1,5) El resultado es “Crear” 2. Para obtener los últimos 11 caracteres de la cadena, usamos la función DERECHA: =DERECHA(A1,11) El resultado es “certezas” 3. Para obtener 7 caracteres de la cadena que comienza en la posición 10, usamos la función MID: =MID(A1,10,7) El resultado es “y requi”. 4.Para obtener la primera palabra de la cadena, usamos las funciones IZQUIERDA y ENCONTRAR: =IZQUIERDA(A1,(ENCONTRAR(” “,A1)-1)) El resultado es “Creatividad”. - Ver más en:http://www.exceldigest.com/myblog/2009/02/01/how-to-extract-text-from-another-text-string/#sthash.yNDHU7Xe.dpuf