Ejemplos de Función Extrae – Excel, VBA y Google Sheets
Download the example workbook
Este tutorial muestra cómo utilizar la Función EXTRAE en Excel para extraer texto de una celda.
Cómo Utilizar la Función EXTRAE en Excel:
La función EXTRAE, extrae un número específico de caracteres que usted especifica de cualquier lugar que desee.
=EXTRAE(B3;C3;D3)
Puede partir de cualquier número visto en la columna C y devolver cualquier número de caracteres en la columna D.
EXTRAE para Tomar una Cadena Entre Diferentes Delimitadores
Si la cadena que queremos está entre dos delimitadores diferentes, esto es bastante sencillo. Por ejemplo, podríamos querer la cadena entre el guión («-«) y la barra («/»).
=EXTRAE(B3;ENCONTRAR("-";B3)+1;ENCONTRAR("/";B3)-ENCONTRAR("-";B3)-1)
En este caso, podemos utilizar ENCONTRAR para comprobar en qué posición del carácter comienza el guión y añadir 1 para empezar a extraer desde allí.
Usar ENCONTRAR de nuevo para comprobar en qué posición de carácter empieza la barra y restar la posición del guión y 1 para obtener la longitud de la cadena que queremos.
También se puede utilizar HALLAR. La diferencia entre ENCONTRAR y HALLAR es que la primera distingue entre mayúsculas y minúsculas. Encontrar un símbolo como el espacio no importaría.
=EXTRAE(B3;ENCONTRAR("-";B3)+1;HALLAR("/";B3)-HALLAR("-";B3)-1)
EXTRAE para Tomar la Cadena Entre el Mismo Delimitador
Si la cadena tiene el mismo delimitador, es un poco más difícil que lo anterior porque ENCONTRAR agarra la primera ocurrencia. Por ejemplo, podríamos querer la cadena entre el primer y el segundo espacio. Pero también se puede indicar una posición inicial en ENCONTRAR.
=EXTRAE(B3;ENCONTRAR(" ";B3)+1;ENCONTRAR(" ";B3;ENCONTRAR(" ";B3)+1)-ENCONTRAR(" ";B3)-1)
Utiliza ENCONTRAR igual que en el ejemplo anterior para comprobar en qué posición de carácter empieza el espacio y añade 1 para empezar a extraer desde ahí.
Utiliza ENCONTRAR de nuevo para comprobar en qué posición de carácter comienza el segundo espacio empezando a encontrar 1 carácter después de la posición del primer espacio.
Y por último restar la posición del primer espacio y 1 para obtener la longitud de la cadena que queremos.
También se puede utilizar HALLAR.
=EXTRAE(B3;ENCONTRAR(" ";B3)+1;HALLAR(" ";B3;ENCONTRAR(" ";B3)+1)-HALLAR(" ";B3)-1)
EXTRAE con Números / Fechas
Tenga en cuenta que EXTRAE es una función de texto y siempre devolverá un valor de texto, las funciones numéricas no funcionarán:
Para superar los problemas anteriores, puede utilizar la función VALOR para convertir de texto a valores.
=VALOR(EXTRAE(B3;ENCONTRAR(":";B3)+2;ENCONTRAR(" ";B3;ENCONTRAR(" ";B3)+1)-ENCONTRAR(":";B3)-2))
EXTRAE para Dividir por Delimitador Común
Es posible que desee dividir todas las palabras en diferentes filas. Por lo tanto:
=ESPACIOS(EXTRAE(SUSTITUIR(B$3;" ";REPETIR(" ";LARGO(B$3)));(FILAS(B3:B$3)-1)*LARGO(B$3)+1;LARGO(B$3)))
Lo que hace es usar SUSTITUIR para sustituir todos los espacios con una afluencia de espacios repetidos usando REPETIR. El resultado es que el texto se ve así:
«Excel es realmente asombroso»
La afluencia de repetidos se repite cuidadosamente con una longitud total del texto original usando LARGO. Esto significa que el número de posición para empezar a extraer es un múltiplo de la longitud total. Para la primera palabra, se extrae desde la posición 1. Para la segunda, será la longitud total + 1. Para la tercera, longitud total x 2 + 1. Etc. Para obtener la enésima palabra, utilice FILAS.
Por último, el número de caracteres es obtenido utilizando la longitud total del texto original.
Encontrar la Enésima Palabra en la Cadena
Podemos combinar ESPACIOS, LARGO, SUSTITUIR, REPETIR con EXTRAE de la siguiente manera para obtener la última palabra de la cadena.
=ESPACIOS(EXTRAE(SUSTITUIR(A$2;" ";REPETIR(" ";LARGO(A$2))); (B2-1)*LARGO(A$2)+1; LARGO(A$2)))
Lo que nos daría los siguientes resultados:
Invertir una Cadena de Texto
Se puede invertir una cadena de texto combinando la función EXTRAE con UNIRCADENAS como sigue.
=UNIRCADENAS("";1;EXTRAE(A2;{10,9,8,7,6,5,4,3,2,1};1))
Lo que nos daría los siguientes resultados:
EXTRAE en Google Sheets
La función EXTRAE funciona exactamente igual en Google Sheets que en Excel:
Ejemplos de MID (EXTRAE) en VBA
También puede utilizar la función MID en VBA. Escriba:
Application.WorksheetFunction.Mid(text,start_num,num_chars)
Para los argumentos de la función (texto, etc.), puede introducirlos directamente en la función, o definir variables para utilizarlos en su lugar.