Excel formula: Split text string at specific character

Fórmula genérica

=IZQUIERDA(text,ENCONTRAR(character,text)-1)

Explicación

Para dividir una cadena de texto en un determinado carácter, puede usar una combinación de las funciones IZQUIERDA, DERECHA, LARGO y ENCONTRAR.

En el ejemplo que se muestra, la fórmula en C5 es:

=IZQUIERDA(B5,ENCONTRAR("_",B5)-1)

Y la fórmula en D5 es:

=DERECHA(B5,LARGO(B5)-ENCONTRAR("_",B5))

Cómo funcionan estas fórmulas

La primera fórmula usa la función ENCONTRAR para ubicar el guión bajo (_) en el texto, luego restamos 1 para volver al "carácter antes del carácter especial".

ENCONTRAR("_",B5)-1

En este ejemplo, ENCONTRAR devuelve 7, por lo que terminamos con 6.

Este resultado se introduce en la función IZQUIERDA como "num_chars": la cantidad de caracteres que se extraerán de B5, comenzando por la izquierda:

=IZQUIERDA(B5,6)

El resultado es la cadena "011016".

Para obtener la segunda parte del texto, utilizamos ENCONTRAR con la función correcta.

Nuevamente usamos ENCONTRAR para localizar el guión bajo (7), luego restamos este resultado de la longitud total del texto en B5 (22), calculado con la función LARGO:

LARGO(B5)-ENCONTRAR("_",B5)

Esto nos da 15 (22-7), que se alimenta a la función DERECHA como "num_chars" - - el número de caracteres para extraer de B5, comenzando desde la derecha:

=DERECHA(B5,15)

El resultado es la cadena "Assessment.xlsx"

Excel formula: Split text and numbers

Fórmula genérica

=MIN(ENCONTRAR({0,1,2,3,4,5,6,7,8,9},A1&"0123456789"))

Explicación

Para separar texto y números, puede usar una fórmula basada en la función ENCONTRAR, la función MIN y la función LARGO con la función IZQUIERDA o DERECHA, dependiendo de si desea extraer el texto o el número. En el ejemplo que se muestra, la fórmula en C5 es:

=MIN(ENCONTRAR({0,1,2,3,4,5,6,7,8,9},B5&"0123456789"))

que devuelve 7, la posición del número 3 en la cadena "apples30".

Visión general

La fórmula parece compleja, pero la mecánica es bastante simple.

Al igual que con la mayoría de las fórmulas que dividen o extraen texto, la clave es ubicar la posición de lo que está buscando. Una vez que tenga la posición, puede usar otras funciones para extraer lo que necesita.

En este caso, suponemos que los números y el texto están combinados, y que el número aparece después del texto. Del texto original, que aparece en una celda, desea dividir el texto y los números en celdas separadas, de esta manera:

Original Text Number
Apples30 Apples 30
peaches24 peaches 24
oranges12 oranges 12
peaches0 peaches 0

Como se indicó anteriormente, la clave en este caso es ubicar la posición inicial del número, lo que puede hacer con una fórmula como esta:

=MIN(ENCONTRAR({0,1,2,3,4,5,6,7,8,9},A1&"0123456789"))

Una vez que tenga la posición, para extraer solo el texto, use:

=IZQUIERDA(A1,position-1)

Y, para extraer solo el número, use:

=DERECHA(A1,LARGO(A1)-position+1)

Como funciona la fórmula

En la primera fórmula anterior, estamos utilizando la función ENCONTRAR para ubicar la posición inicial del número. Para find_text, estamos utilizando la constante de matriz {0,1,2,3,4,5,6,7,8,9}, esto hace que la función ENCONTRAR realice una búsqueda separada para cada valor en la constante de matriz. Como la constante de matriz contiene 10 números, el resultado será una matriz con 10 valores. Por ejemplo, si el texto original es "apples30", la matriz resultante será:

{8,10,11,7,13,14,15,16,17,18}

Cada número en este conjunto representa la posición de un elemento en el conjunto constante dentro del texto original.

A continuación, la función MIN devuelve el valor más pequeño de la lista, que corresponde a la posición del primer número que aparece en el texto original. En esencia, la función ENCONTRAR obtiene todas las posiciones numéricas, y MIN nos da la primera posición numérica: observe que 7 es el valor más pequeño en la matriz, que corresponde a la posición del número 3 en el texto original.

Quizás se esté preguntando acerca de la construcción extraña para dentro de texto en la función de búsqueda:

B5&"0123456789"

Esta parte de la fórmula concatena cada número posible 0-9 con el texto original en B5. Desafortunadamente, ENCONTRAR no devuelve cero cuando no se encuentra un valor, por lo que esta es solo una forma inteligente de evitar errores que podrían ocurrir cuando no se encuentra un número.

En este ejemplo, dado que suponemos que el número siempre aparecerá segundo en el texto original, funciona bien porque MIN fuerza que solo se devuelva la menor, o la primera aparición, de un número. Siempre que aparezca un número en el texto original, se devolverá esa posición.

Si el texto original no contiene ningún número, se devolverá una posición "falsa" igual a la longitud del texto original + 1. Con esta posición falsa, la fórmula IZQUIERDA anterior aún devolverá el texto y la fórmula DERECHA devolverá una cadena vacía.

Excel formula: Split numbers from units of measure

Fórmula genérica

=MAX(ESNUMERO(VALOR(EXTRAE(A1,{1,2,3,4,5,6,7,8,9},1)))*{1,2,3,4,5,6,7,8,9})+1

Explicación

Nota: esta es una fórmula experimental que utiliza una constante de matriz codificada, establecida aquí para referencia y comentario. Solo se probó casualmente, así que tenga cuidado si lo usa o se adapta.

A veces se encuentran datos que mezclan unidades directamente con números (es decir, 8 km, 12 v, 7.5 horas). Desafortunadamente, los números en este formato se consideran texto dentro de Excel, y no podrá realizar ninguna operación matemática con dichos valores.

Para dividir un número de un valor unitario, debe determinar la posición del último número. Si agrega 1 a esa posición, tiene el inicio del texto de la unidad.

En el ejemplo que se muestra, la fórmula en C5 es:

=MAX(ESNUMERO(VALOR(EXTRAE(B5,{1,2,3,4,5,6,7,8,9},1)))*{1,2,3,4,5,6,7,8,9})+1

Esta fórmula usa la función EXTRAE para extraer los primeros 9 valores en B5, un carácter a la vez. El resultado es una matriz como esta:

{"8", "0", "v", "", "", "", "", "", ""}

Luego usamos la función VALOR para convertir números en formato de texto a números reales. El resultado es:

{8,0, # VALOR!, # VALOR!, # VALOR!, # VALOR!, # VALOR!, # VALOR!, # VALOR!}

Ejecutamos esta matriz a través de ESNUMERO para obtener:

{VERDADERO, VERDADERO, FALSO, FALSO, FALSO, FALSO, FALSO, FALSO, FALSO}

Luego multiplique esa cantidad por otra matriz con 9 números para obtener:

{1,2,0,0,0,0,0,0,0}

Luego usamos MAX para obtener el mayor valor, que es la posición del "último número".

En este caso agregamos 1 a la posición para obtener la posición de "inicio de la unidad".

Finalmente, usamos esta posición con las funciones estándar IZQUIERDA y DERECHA para separar los números de las unidades:

=VALOR(IZQUIERDA(B5,C5-1)) // number
=ESPACIOS(DERECHA(B5,LARGO(B5)-C5+1)) // unit

Tenga en cuenta que la constante de matriz de números codificados es un truco por conveniencia, y solo manejará valores en bruto de hasta 9 caracteres de longitud.

Excel formula: Split dimensions into two parts

Explicación

Si tiene una hoja de trabajo que contiene dimensiones de texto (es decir, "50 pies x 200 pies", etc.) puede dividirla en dos partes con fórmulas que utilizan varias funciones de texto.

Antecedentes

Una molestia común con los datos es que pueden representarse como texto en lugar de números. Esto es especialmente común con las dimensiones, que pueden aparecer en una cadena de texto que incluye unidades, por ejemplo:

50 pies x 200 pies 153 pies x 324 pies Etc.

En una hoja de cálculo, es mucho más conveniente tener números reales para poder usarlos en los cálculos que desee.

La extracción de dimensiones individuales de una representación de texto se puede hacer con fórmulas que combinan varias funciones de texto.

Solución

En este caso, debido a que tenemos tanto la unidad "ft" como los caracteres de espacio ("") incluidos en las dimensiones, tiene sentido eliminarlos primero. Eso "normalizará" las dimensiones y simplificará las fórmulas que realizan la extracción real.

Para eliminar tanto "ft" como "", estamos utilizando esta fórmula en la celda C6, que contiene dos funciones SUSTITUIR anidadas:

=SUSTITUIR(SUSTITUIR(B5,"ft","")," ","")

Using the SUBSTITUTE function to strip units and spaces

Esta fórmula toma el texto original y primero elimina "ft" (en el interior), luego elimina espacios con la función SUSTITUIR externa.

El resultado es una dimensión con solo la "x" que separa las dos partes.

Ahora podemos dos fórmulas relativamente sencillas para extraer cada parte. Para obtener la dimensión a la izquierda, D6 contiene:

=IZQUIERDA(C5,ENCONTRAR("x",C5)-1)

Using the LEFT function to grab the dimension on the left

Para obtener la dimensión a la derecha, E6 contiene:

=DERECHA(C5,LARGO(C5)-ENCONTRAR("x",C5))

Using the RIGHT function to grab the dimension on the right

Ambas fórmulas anteriores extraen la dimensión correcta utilizando ENCONTRAR para localizar la "x". Para obtener más detalles, consulte los enlaces de funciones relacionadas en esta página.

Excel formula: Split dimensions into three parts

Explicación

Para dividir dimensiones como 100x50x25 en tres partes separadas, puede usar algunas fórmulas bastante complicadas que usan IZQUIERDA, EXTRAE, DERECHA, ENCONTRAR, LARGO y SUSTITUIR.

Nota: también puede usar Flash Fill en Excel 2013 y versiones posteriores, y la función "texto a columnas" en versiones anteriores de Excel. Ambos enfoques son bastante más simples que las fórmulas que se describen a continuación. Sin embargo, si necesita una solución dinámica, siga leyendo ...

La 1ª dimensión

Para obtener la primera dimensión, estamos usando esta fórmula en C4:

=IZQUIERDA(B4,ENCONTRAR("x",B4)-1)

Esto funciona mediante la extracción de texto a partir de IZQUIERDA. El número de caracteres se calcula localizando la primera "x" en el texto usando la función ENCONTRAR, luego restando 1.

La 2da dimensión

Para obtener la segunda dimensión, estamos usando esta fórmula en D4:

=EXTRAE(B4,ENCONTRAR("x",B4)+1,ENCONTRAR("~",SUSTITUIR(B4,"x","~",2))-(ENCONTRAR("x",B4)+1))

Esta fórmula utiliza la función EXTRAE, que extrae una cierta cantidad de caracteres comenzando en una determinada posición en la siguiente. La posición inicial se calcula con esto:

ENCONTRAR("x",B4)+1

Que simplemente localiza la primera "x" y agrega 1.

El número de caracteres se calcula usando:

ENCONTRAR("~",SUSTITUIR(B4,"x","~",2))-(ENCONTRAR("x",B4)+1)

Usamos SUSTITUIR con ENCONTRAR para ubicar la posición de la segunda "x", como se describe aquí.

Luego restamos de eso la ubicación de la primera "x" + 1.

La tercera dimensión

Para obtener la tercera dimensión, estamos usando esta fórmula en E4:

=DERECHA(B4,LARGO(B4)-ENCONTRAR("~",SUSTITUIR(B4,"x","~",2)))

Esto utiliza la función DERECHA para extraer un número específico de caracteres, comenzando desde la derecha. Calculamos el número de caracteres a extraer obteniendo la longitud total con LARGO, luego restando la ubicación de la segunda instancia de "x".

Excel formula: Reverse text string

Fórmula genérica

=UNIRCADENAS("",1,EXTRAE(A1,{10,9,8,7,6,5,4,3,2,1},1))

Explicación

Puede invertir una cadena de texto con las funciones UNIRCADENAS y EXTRAE, utilizando una constante de matriz. En el ejemplo que se muestra, la fórmula en C5 es:

=UNIRCADENAS("",1,EXTRAE(B5,{10,9,8,7,6,5,4,3,2,1},1))

Cómo funciona esta fórmula

En el fondo, esta fórmula usa la función EXTRAE para extraer cada carácter de una cadena de texto en orden inverso. El carácter inicial se proporciona como una lista de números en orden descendente codificados como constante de matriz:

EXTRAE(B5,{10,9,8,7,6,5,4,3,2,1},1)

El argumento de texto viene B5, y 1 se especifica para el número de caracteres a extraer.

Con la cadena "ABCD" en B5, la salida de EXTRAE es una matriz que se ve así:

{"","","","","","","D","C","B","A"}

Esta matriz se alimenta a la función UNIRCADENAS como argumento text1, con el delimitador establecido en una cadena vacía (""), e ignora el conjunto en blanco en VERDADERO (ingresado como 1):

=UNIRCADENAS("",1,{"","","","","","","D","C","B","A"})

La función UNIRCADENAS concatena cada elemento de la matriz, ignora los espacios en blanco y devuelve el resultado final, "DCBA"

Matriz dinámica

La constante de matriz en el ejemplo anterior solo admitirá cadenas de hasta 10 caracteres. Para usar una matriz dinámica que se ajuste al tamaño correcto, puede usar una fórmula más complicada como esta

=UNIRCADENAS("",1,EXTRAE(B5,ABS(FILA(INDIRECTO("1:"&LARGO(B5)))-(LARGO(B5)+1)),1))

Más información sobre cómo generar una matriz de números aquí.

Matriz dinámica con SECUENCIA

Debido en algún momento de 2019 a través de la suscripción a Office 365, la función SECUENCIA está diseñada para generar matrices de números dinámicos. Con SECUENCIA, una solución dinámica se ve así:

=UNIRCADENAS("",1,EXTRAE(B5,SECUENCIA(LARGO(B5),,LARGO(B5),-1),1))

Excel formula: Remove unwanted characters

Fórmula genérica

=SUSTITUIR(B4,CARACTER(code),"")

Explicación

Para eliminar caracteres no deseados específicos en Excel, puede usar una fórmula basada en la función de sustitución.

En el ejemplo que se muestra, la fórmula en C4 es:

=SUSTITUIR(B4,CARACTER(202),"")

Que elimina una serie de 4 caracteres invisibles al comienzo de cada celda en la columna B.

Cómo funciona esta fórmula

La función SUSTITUIR puede buscar y reemplazar texto en una celda, donde sea que ocurra.

En este caso, estamos usando SUSTITUIR para encontrar un carácter con el número de código 202 y reemplazarlo con una cadena vacía (""), que elimina el carácter por completo.

¿Cómo supe eliminar el caracter 202?

Para resolverlo, primero utilicé esta fórmula para obtener el número de código para el primer carácter de B4:

Aquí, la función IZQUIERDA, sin el segundo argumento opcional, devuelve el primer carácter a la izquierda. Esto entra en la función CODIGO, que informa el valor del código de caracteres, que es 202.

Fórmula todo en uno

En este caso, dado que estamos despojando a los personajes principales, podríamos combinar ambas fórmulas en una, así:

Aquí, en lugar de proporcionar el carácter 202 explícitamente a SUSTITUIR, estamos utilizando CODIGO y CARACTER para proporcionar un código de forma dinámica, utilizando el primer carácter en la celda.

Excel formula: Replace one character with another

Fórmula genérica

=SUSTITUIR(ref,old,new)

Explicación

Para reemplazar o sustituir todas las apariciones de un personaje con otro personaje, puede usar la función de sustitución.

En el ejemplo que se muestra, la fórmula en C6 es:

=SUSTITUIR(B6," ","-")

Cómo funciona esta fórmula

La función SUSTITUIR es completamente automática. Todo lo que necesita hacer es proporcionar "texto antiguo" y "texto nuevo". SUSTITUIR reemplazará cada instancia del texto antiguo con el nuevo texto.

Si necesita realizar más de un reemplazo al mismo tiempo, deberá anidar varias funciones de SUSTITUIR. Vea el ejemplo de "números de teléfono limpios" vinculado a continuación.

Si necesita reemplazar un personaje en una ubicación específica, consulte la función REEMPLAZAR.

Excel formula: Remove text by variable position

Fórmula genérica

=REEMPLAZAR(text,start,ENCONTRAR(marker,text)+1,"")

Explicación

Para eliminar texto de una celda, cuando el texto está en una posición variable, puede usar una fórmula basada en la función REEMPLAZAR, con la ayuda de la función ENCONTRAR. En el ejemplo que se muestra, la fórmula en C6 es:

=REEMPLAZAR(B6,1,ENCONTRAR(":",B6)+1,"")

que elimina todo el texto hasta los dos puntos (:) y el espacio siguiente.

Cómo funciona esta fórmula

La función REEMPLAZAR reemplazará el texto por posición. Puede usar REEMPLAZAR para eliminar texto proporcionando una cadena vacía ("") para el argumento "new_text".

En este caso, queremos eliminar las etiquetas que aparecen dentro del texto. Las etiquetas varían en longitud e incluyen palabras como "Marca", "Modelo", "Ahorro de combustible", etc. Cada etiqueta es seguida por dos puntos y un espacio. Podemos usar los dos puntos como un "marcador" para descubrir dónde termina la etiqueta.

Trabajando de adentro hacia afuera, utilizamos la función ENCONTRAR para obtener la posición del colon en el texto, luego agregamos 1 para tener en cuenta el espacio que sigue al colon. El resultado (un número) se conecta a la función REEMPLAZAR para el argumento "num_chars", que representa el número de caracteres a reemplazar.

La función REEMPLAZAR reemplaza el texto de 1 a "dos puntos + 1" con una cadena vacía (""). En el ejemplo que se muestra, la solución se ve así:

=REEMPLAZAR(B6,1,ENCONTRAR(":",B6)+1,"")
=REEMPLAZAR(B6,1,6,"")
=2016
Excel formula: Remove text by position

Fórmula genérica

=REEMPLAZAR(text,start,characters,"")

Explicación

Para eliminar texto de una celda por posición, puede usar la función REEMPLAZAR. En el ejemplo que se muestra, la fórmula en C6 es:

=REEMPLAZAR(B6,1,24,"")

que reemplaza los primeros 24 caracteres del texto con una cadena vacía ("").

Cómo funciona esta fórmula

La función de reemplazo le permite reemplazar el texto en función de su ubicación y longitud. En este caso, queremos quitar la unidad y la ruta, y dejar solo el nombre del documento. La longitud de esta parte de la cadena (texto) es 24 y la posición inicial es 1, y el patrón nunca cambia.

La función REEMPLAZAR puede manejar esto fácilmente, solo necesitamos proporcionar una referencia de celda (B6), una posición inicial (1), el número de caracteres a reemplazar (24) y el texto a usar para el reemplazo (""):

=REEMPLAZAR(B6,1,24,"")

Para el reemplazo, usamos una cadena vacía ("") que hace que REEMPLAZAR reemplace los caracteres 1-24 con nada.

Alternativa con SUSTITUIR

Como el texto en este caso nunca varía, también podríamos usar la función SUSTITUIR para realizar la operación de nombre:

=SUSTITUIR(B6,"C:\Users\dave\Documents\","")
Excel formula: Remove text by matching

Fórmula genérica

=SUSTITUIR(B6,text_to_remove,"")

Explicación

Para eliminar texto de una celda según el contenido coincidente (no la ubicación), puede usar la función SUSTITUIR.

En el ejemplo que se muestra, la fórmula en C6 es:

=SUSTITUIR(B6,"-","")

Como funciona esta fórmula

La función SUSTITUIR le permite reemplazar el texto haciendo coincidir el contenido.

En este caso, queremos eliminar guiones de los números de teléfono. La función SUSTITUIR puede manejar esto fácilmente: solo necesitamos proporcionar una referencia de celda (B6), el texto para eliminar ("-") y una cadena vacía ("") para el texto de reemplazo.

SUSTITUIR reemplazará todas las instancias de "-" con nada.

Tenga en cuenta que SUSTITUIR es una función sensible a mayúsculas y minúsculas.

Eliminar más de una cosa

Si necesita eliminar más de una cosa, puede anidar múltiples funciones de SUSTITUIR. Por ejemplo, para eliminar corchetes del texto, puede usar:

=SUSTITUIR(SUSTITUIR(text, "[", ""), "]", "")

Puede anidar en varios niveles, como se describe en esta fórmula más compleja para limpiar los números de teléfono.

Excel formula: Remove line breaks

Fórmula genérica

=SUSTITUIR(A1,CARACTER(10),", ")

Explicación

Para eliminar saltos de línea de una celda o del texto dentro de una fórmula, puede usar una fórmula basada en las funciones SUSTITUIR y CARACTER. En el ejemplo que se muestra, la fórmula en C5 es:

=SUSTITUIR(B5,CARACTER(10),", ")

que reemplaza los saltos de línea en B5 con comas.

Cómo funciona esta fórmula

Primero, debe saber que Excel contiene dos funciones, LIMPIAR y ESPACIOS, que pueden eliminar automáticamente saltos de línea y espacios adicionales del texto. Por ejemplo, para quitar todos los saltos de línea de una celda, puede usar:

=LIMPIAR(B5)

Para una demostración rápida de LIMPIAR y ESPACIOS, vea este video.

En este caso, sin embargo, estamos eliminando saltos de línea y reemplazándolos con comas, por lo que estamos utilizando la función SUSTITUIR en lugar de LIMPIAR. SUSTITUIR puede localizar texto coincidente en cualquier lugar de una celda y reemplazarlo con el texto que elija. SUSTITUIR puede aceptar hasta cuatro argumentos, pero estamos usando solo los primeros tres como este:

=SUSTITUIR(B5,CARACTER(10),", ")

El texto proviene de la celda B5.

El "texto anterior" se ingresa como CARACTER (10). Esto coincidirá con el carácter de salto de línea utilizado en Windows.

El "nuevo texto" se ingresa como ",". Esto se traduce en una coma más un espacio. Necesitamos las comillas porque este es un valor de texto.

SUSTITUIR luego reemplaza todos los saltos de línea en la celda con comas y devuelve el resultado final como texto en C5. Como el "texto antiguo" es un argumento, puede cambiar la coma a cualquier otro texto que desee.

Excel formula: Remove leading and trailing spaces from text

Fórmula genérica

=ESPACIOS(text)

Explicación

Si necesita quitar espacios iniciales y finales del texto en una o más celdas, puede usar la función ESPACIOS. En el ejemplo que se muestra, la fórmula en la celda C3 es:

Una vez que haya eliminado los espacios adicionales, puede copiar las celdas con fórmulas y pegar especiales en otros lugares como "valores" para obtener el texto final.

Video: Cómo limpiar texto con ESPACIOS y LIMPIAR

Cómo funciona esta fórmula

La función ESPACIOS es completamente automática. Elimina elimina los espacios iniciales y finales del texto, y también "normaliza" espacios múltiples entre palabras a un solo carácter de espacio. Todo lo que necesita hacer es proporcionar una referencia a una celda.

ESPACIOS con LIMPIAR

Si también necesita eliminar saltos de línea de las celdas, puede agregar la función LIMPIAR de la siguiente manera:

La función LIMPIAR elimina un rango de caracteres que no se imprimen, incluidos los saltos de línea, y devuelve el texto "limpio". La función ESPACIOS se hace cargo para eliminar espacios adicionales y devuelve el texto final.

Otros personajes problemáticos

Tenga en cuenta que LIMPIAR no puede eliminar todos los caracteres que no se imprimen, especialmente un espacio que no se rompe, que puede aparecer en Excel como CARACTER (160). Al agregar la función SUSTITUIR a la fórmula, puede eliminar caracteres específicos. Por ejemplo, para eliminar un espacio que no se rompe, puede usar:

Excel formula: Remove last word

Fórmula genérica

=EXTRAE(A1,1,ENCONTRAR("~",SUSTITUIR(A1," ","~",LARGO(A1)-LARGO(SUSTITUIR(A1," ",""))))-1)

Explicación

Para eliminar la última palabra de una cadena de texto, puede usar una fórmula basada en la función EXTRAE, con la ayuda de SUSTITUIR, LARGO y ENCONTRAR. En el ejemplo que se muestra, la fórmula en la celda B5 es:

=EXTRAE(B5,1,ENCONTRAR("~",SUSTITUIR(B5," ","~",LARGO(B5)-LARGO(SUSTITUIR(B5," ",""))))-1)

Cómo funciona esta fórmula

Esta fórmula usa la función EXTRAE para eliminar la última palabra de una cadena de texto. El principal desafío es descubrir dónde comienza la última palabra.

La fórmula es un poco complicada, pero los pasos son simples. Primero contamos cuántos espacios existen en el texto usando LARGO y SUSTITUIR. A continuación, usamos el argumento "instancia" algo oscuro en la función SUSTITUIR para reemplazar el último espacio con una tilde (~). Finalmente, usamos ENCONTRAR para descubrir dónde está la tilde, y la función EXTRAE para descartar todo después de la tilde.

Trabajando de adentro hacia afuera, usamos las funciones LARGO y SUSTITUIR para contar cuántos espacios aparecen en el siguiente:

LARGO(B5)-LARGO(SUSTITUIR(B5," ","")) // returns 6

Para el texto en B5, esto devuelve 6. Esta página explica esta parte de la fórmula con más detalle. Esto nos dice que queremos cortar el texto en el sexto espacio.

Nota: si las palabras están separadas por más de un espacio, primero querrá normalizar espacios con la función ESPACIOS.

El número 6 se conecta a otro SUSTITUIR como el "número de instancia":

SUSTITUIR(B5," ","~",6) // insert tilde

Aquí, reemplazamos la sexta instancia de un espacio ("") con una tilde (~). Después de ejecutar SUSTITUIR, devuelve esta cadena:

"It's been seven hours and fifteen~days"

Nota: utilizamos una tilde (~) solo porque es un personaje que ocurre raramente. Puede usar cualquier carácter que desee, siempre que no aparezca en el texto fuente.

A continuación, usamos la función ENCONTRAR para localizar la tilde:

ENCONTRAR("~","It's been seven hours and fifteen~days")-1

ENCONTRAR devuelve 34, ya que la tilde es el 34 ° carácter. Restamos 1 de este número, porque no queremos incluir el último espacio en el resultado final. Ahora podemos simplificar la fórmula para:

=EXTRAE(B5,1,33) // extract final text

La función EXTRAE luego devuelve los caracteres 1-33:

"It's been seven hours and fifteen"

Con un delimitador personalizado

La misma fórmula se puede usar con un delimitador diferente. Por ejemplo, para eliminar todo el texto después de la última barra diagonal "/", puede usar:

=EXTRAE(A1,1,ENCONTRAR("~",SUSTITUIR(A1,"/","~",LARGO(A1)-LARGO(SUSTITUIR(A1,"/",""))))-1)

Eliminar las últimas n palabras

Puede adaptar la fórmula para eliminar las últimas 2 palabras, las últimas 3 palabras, etc. La forma general es:

=EXTRAE(A1,1,ENCONTRAR("~",SUSTITUIR(A1,d,"~",LARGO(A1)-LARGO(SUSTITUIR(A1,d,""))-(n-1)))-1)

donde d es el delimitador yn es el número de palabras que se eliminarán.

Excel formula: Remove first character

Fórmula genérica

=REPLACE(A1,1,N,"")

Explicación

Para eliminar el primer carácter en una celda, puede usar la función REEMPLAZAR. En el ejemplo que se muestra, la fórmula en D5 es:

=REPLACE(A1,1,1,"")

Cómo funciona esta fórmula

Esta fórmula usa la función REPLACE para reemplazar el primer carácter en una celda con una cadena vacía (""). Los argumentos para REPLACE se configuran de la siguiente manera:

  • old_text is the original value from column B
  • start_num is hardcoded as the number 1
  • num_chars comes from column C
  • new_text is entered as an empty string ("")

El comportamiento o REEMPLAZAR es automático. Con estas entradas, la función REPLACE reemplaza el primer carácter en B5 con una cadena vacía y devuelve el resultado.

Eliminando N caracteres

Para eliminar siempre solo el primer carácter, simplemente codifique tanto el número de inicio como el número de caracteres como este:

=REPLACE(A1,1,1,"")

Para eliminar los primeros N caracteres de un valor de texto, use la forma genérica de la fórmula:

=REPLACE(A1,1,N,"")

donde N representa el número de caracteres a eliminar.

Con DERECHA e IZQUIERDA

También puede usar las funciones DERECHA, IZQUIERDA y LARGO para eliminar el primer carácter de una celda. La forma general de la fórmula es:

=DERECHA(text,LARGO(text)-N)

donde N es el número de caracteres a eliminar. En esta fórmula, la función DERECHA se usa para extraer caracteres de la derecha, hasta (pero sin incluir), los caracteres se eliminan de la izquierda. En el ejemplo que se muestra, la fórmula en D5 sería:

=DERECHA(B5,LARGO(B5)-C5)

La función LARGO devuelve el número de caracteres en la celda B5, del cual se resta el valor en C5. DERECHA utiliza el resultado para extraer el número correcto de caracteres de DERECHA.

Obteniendo un valor numérico

Las fórmulas anteriores siempre devolverán texto, incluso cuando el resultado contenga solo números. Para obtener un resultado numérico, puede agregar cero de esta manera:

=REPLACE(A1,1,1,"")+0

La operación matemática hace que Excel coaccione el texto a números. Esto solo funciona cuando el valor devuelto por DERECHA contiene solo números.

Excel formula: Remove file extension from filename

Fórmula genérica

=IZQUIERDA(filename,ENCONTRAR(".",filename)-1)

Explicación

Para eliminar una extensión de archivo de un nombre de archivo, puede usar una fórmula basada en las funciones IZQUIERDA y ENCONTRAR. En el ejemplo que se muestra, la fórmula en C5 es:

=IZQUIERDA(B5,ENCONTRAR(".",B5)-1)

Cómo funciona esta fórmula

El núcleo de esta fórmula es la función IZQUIERDA que simplemente extrae texto del nombre del archivo, comenzando por la izquierda y terminando en el carácter anterior al primer punto (".").

=IZQUIERDA(filename,characters)

La función ENCONTRAR se usa para determinar cuántos caracteres extraer:

ENCONTRAR(".",B5)-1

Buscar devuelve la posición de la primera coincidencia (6 en el primer ejemplo) de la que se resta 1. El resultado, 5, entra en IZQUIERDA así:

=IZQUIERDA(B5,5)

y la función IZQUIERDA devuelve los primeros cinco caracteres de la izquierda: "Happy".

Nota: debido a que esta fórmula encuentra la primera aparición de ".", Eliminará todas las extensiones de archivo cuando haya más de una.

Excel formula: Remove characters from right

Fórmula genérica

=IZQUIERDA(text,LARGO(text)-n)

Explicación

Para eliminar los últimos n caracteres de una cadena de texto, puede usar una fórmula basada en las funciones IZQUIERDA y LARGO. Puede usar una fórmula como esta para eliminar los últimos 3 caracteres, los últimos 5 caracteres de un valor, comenzando por la izquierda. En el ejemplo que se muestra, la fórmula en E6 es:

=VALOR(IZQUIERDA(D6,LARGO(D6)-6))

que recorta "millas" de cada valor y devuelve solo el número.

Cómo funciona esta fórmula

La función IZQUIERDA es perfecta para extraer caracteres comenzando desde el lado izquierdo de una cadena de texto. Usamos IZQUIERDA en esta fórmula para extraer todos los caracteres hasta el número de caracteres que queremos recortar.

El desafío, para valores con longitud variable, es que no sabemos exactamente cuántos caracteres extraer. Ahí es donde se usa la función LARGO.

Trabajando de adentro hacia afuera, LARGO calcula la longitud total de cada valor. Para D6 (736 millas) la longitud total es 9. Para obtener el número de caracteres que se extraerán, restamos 6, que es la longitud de "millas", incluido el carácter de espacio. El resultado es 3, que se alimenta a IZQUIERDA como el número de caracteres a extraer. IZQUIERDA luego devuelve el texto "736" como un valor de texto.

Finalmente, debido a que queremos un valor numérico (y no texto), ejecutamos el texto a través de la función VALOR, que convierte los números en formato de texto en números reales.

Los pasos de la fórmula se ven así:

=VALOR(IZQUIERDA(D6,LARGO(D6)-6))
=VALOR(IZQUIERDA(D6,9-6))
=VALOR(IZQUIERDA(D6,3))
=VALOR("736")
=736

Nota: no hay razón para usar la función VALOR si no necesita un resultado numérico.

Excel formula: Position of 2nd 3rd etc instance of character

Fórmula genérica

=ENCONTRAR("~",SUSTITUIR(text,char,"~",instance))

Explicación

Para obtener la posición de la segunda, tercera, cuarta, etc. instancia de un carácter específico dentro de una cadena de texto, puede usar las funciones ENCONTRAR y SUSTITUIR.

En el ejemplo que se muestra, la fórmula en E4 es:

=ENCONTRAR("~",SUSTITUIR(B4,"x","~",D4))

Cómo funciona esta fórmula

En el fondo, esta fórmula utiliza el hecho de que la función SUSTITUIR entiende "instancia", suministrada como un argumento opcional opcional llamado "instancia_num". Esto significa que puede usar la función SUSTITUIR para reemplazar una instancia específica de un carácter en una cadena de texto. Entonces:

SUSTITUIR(B4,"x","~",D4)

reemplaza solo la segunda instancia (2 proviene de D4) de "x" en el texto en B4, con el carácter "~". El resultado se ve así:

100x15 ~ 50

Luego, ENCONTRAR localiza el "~" dentro de esta cadena y devuelve la posición, que es 7 en este caso.

Nota: usamos "~" en este caso solo porque rara vez ocurre en otro texto. Puede usar cualquier carácter que sepa que no aparecerá en el texto.

Excel formula: Pad text to equal length

Fórmula genérica

=A1&REPETIR("*",count-LARGO(A1))

Explicación

Para rellenar el texto a la misma longitud usando otro carácter, puede usar una fórmula basada en las funciones REPETIR y LARGO. En el ejemplo que se muestra, se usa una fórmula para agregar un número variable de asteriscos (*) a los valores de la columna B, de modo que el resultado final siempre tenga 12 caracteres de longitud. La fórmula en C5 es:

=B5&REPETIR("*",12-LARGO(B5))

Cómo funciona esta fórmula

Esta fórmula concatena el valor original en la columna B a una cadena de asteriscos (*) ensamblada con la función REPETIR para que el resultado final sea siempre de 12 caracteres:

REPETIR("*",12-LARGO(B5))

Dentro de la función REPETIR, el texto a repetir se proporciona como un solo asterisco ("*"). El número de asteriscos necesarios para cada valor se determina con la función LARGO en este bit de código aquí:

12-LARGO(B5)

Comenzamos con 12, luego restamos la longitud del texto en la columna B. En la celda B5, "Sebastian" tiene 9 caracteres, por lo que el resultado es 3. La fórmula se evalúa así:

="Sebastian"&REPETIR("*",12-LARGO(B5))
="Sebastian"&REPETIR("*",12-9)
="Sebastian"&REPETIR("*",3)
="Sebastian"&"***"
="Sebastian***"

Los resultados en la columna C están formateados con una fuente monoespaciada (Courier New) para mostrar claramente que todas las cadenas tienen la misma longitud.

Excel formula: Normalize text

Fórmula genérica

=MINUSC(ESPACIOS(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(A1,"("," "),")"," "),"-"," "),":"," "),";"," "),"!"," "),","," "),"."," ")))

Explicación

Para eliminar parte de la complejidad natural del texto (eliminar signos de puntuación, normalizar mayúsculas y minúsculas, eliminar espacios adicionales) puede usar una fórmula basada en la función SUSTITUIR, con la ayuda de las funciones ESPACIOS y MINUSC.

Contexto

Puede haber ocasiones en las que necesite eliminar parte de la variabilidad del texto antes de otro procesamiento. Un ejemplo es cuando desea contar palabras específicas dentro de cadenas de texto más grandes. Debido a que Excel no proporciona soporte para expresiones regulares, no puede construir coincidencias precisas. Por ejemplo, si desea contar cuántas veces aparece la palabra "zorro" en una celda, terminará contando "zorros". Puedes buscar "zorro" (con un espacio) pero eso fallará con "zorro" o "zorro". Una solución alternativa es simplificar el texto primero con una fórmula en una columna auxiliar, luego ejecutar recuentos en la versión simplificada. El ejemplo en esta página muestra una forma de hacer esto.

Cómo funciona esta fórmula

La fórmula que se muestra en este ejemplo utiliza una serie de funciones SUSTITUIR anidadas para eliminar paréntesis, guiones, dos puntos, punto y coma, signos de exclamación, comas y puntos. El proceso se ejecuta de adentro hacia afuera, con cada SUSTITUIR reemplazando un personaje con un solo espacio, y luego pasando al siguiente SUSTITUIR. El SUSTITUIR más interno elimina los paréntesis izquierdos, y el resultado se entrega al siguiente SUSTITUIR, que elimina los paréntesis correctos, y así sucesivamente.

En la versión siguiente, se agregaron saltos de línea para facilitar la lectura y facilitar la edición de reemplazos. A Excel no le importan los saltos de línea en las fórmulas, por lo que puede usar la fórmula tal como está.

=
MINUSC(
ESPACIOS(
SUSTITUIR(
SUSTITUIR(
SUSTITUIR(
SUSTITUIR(
SUSTITUIR(
SUSTITUIR(
SUSTITUIR(
SUSTITUIR(
A1,
"("," "),
")"," "),
"-"," "),
":"," "),
";"," "),
"!"," "),
","," "),
"."," ")))

Después de completar todas las sustituciones, el resultado se ejecuta a través de ESPACIOS para normalizar espacios, luego la función MINUSC para forzar todo el texto a minúsculas.

Nota: Deberá ajustar los reemplazos reales para adaptarlos a sus datos.

Agregar un espacio inicial y final

En algunos casos, es posible que desee agregar un carácter de espacio al inicio y al final del texto limpio. Por ejemplo, si desea contar palabras con precisión, puede buscar la palabra rodeada de espacios (es decir, buscar "zorro", "mapa") para evitar coincidencias falsas. Para agregar un espacio inicial y final, simplemente concatene un espacio ("") al inicio y al final:

=" "&formula&" "

Donde "fórmula" es la fórmula más larga de arriba.

Excel formula: Most frequently occurring text

Fórmula genérica

=INDICE(rng,MODA(COINCIDIR(rng,rng,0)))

Explicación

Para extraer el valor de palabra o texto que ocurre con mayor frecuencia en un rango, puede usar una fórmula basada en varias funciones INDICE, COINCIDIR y MODA.

En el ejemplo que se muestra, la fórmula en H5 es:

=INDICE(B5:F5,MODA(COINCIDIR(B5:F5,B5:F5,0)))

Cómo funciona esta fórmula

Trabajando de adentro hacia afuera, la función COINCIDIR hace coincidir el rango contra sí mismo. Es decir, le damos a la función COINCIDIR el mismo rango para el valor de búsqueda y la matriz de búsqueda (B5: F5).

Debido a que el valor de búsqueda contiene más de un valor (una matriz), COINCIDIR devuelve una matriz de resultados, donde cada número representa una posición. En el ejemplo que se muestra, la matriz se ve así:

{1,2,1,2,2}

Donde aparece "perro", vemos 2, y donde aparece "gato", vemos 1. Esto se debe a que la función COINCIDIR siempre devuelve la primera coincidencia, lo que significa que las apariciones posteriores de un valor dado devolverán la misma (primera) posición.

A continuación, esta matriz se alimenta a la función MODA. MODA devuelve el número más frecuente, que en este caso es 2. El número 2 representa la posición en la que encontraremos el valor más frecuente en el rango.

Finalmente, necesitamos extraer el valor mismo. Para esto, utilizamos la función INDICE. Para la matriz, usamos el rango de valores (B5: F5). El número de fila es proporcionado por MODA.

INDICE devuelve el valor en la posición 2, que es "perro".

Celdas vacías

Para tratar con celdas vacías, puede usar la siguiente fórmula de matriz, que agrega una declaración SI para probar celdas vacías:

{=INDICE(B5:F5,MODA(SI(B5:F5<>"",COINCIDIR(B5:F5,B5:F5,0))))}

Esta es una fórmula de matriz, y debe ingresarse con control + shift + enter.

Excel formula: Most frequent text with criteria

Fórmula genérica

=INDICE(rng1,MODA(SI(rng2=criteria,COINCIDIR(rng1,rng1,0))))

Explicación

Para encontrar el texto que aparece con más frecuencia en un rango, según los criterios que proporcione, puede usar una fórmula de matriz basada en varias funciones de Excel INDICE, COINCIDIR, MODA y SI. En el ejemplo que se muestra, la fórmula en G5 es:

=INDICE(supplier,MODA(SI(client=F5,COINCIDIR(supplier,supplier,0))))

donde "proveedor" es el rango con nombre C5: C15, y "cliente" es el rango con nombre B5: B15.

Nota: esta es una fórmula de matriz y debe ingresarse con control + shift + enter.

Cómo funciona esta fórmula

Trabajando de adentro hacia afuera, usamos la función COINCIDIR para hacer coincidir el rango de texto contra sí mismo, al darle a COINCIDIR el mismo rango para el valor de búsqueda y la matriz de búsqueda, con cero para el tipo de coincidencia:

COINCIDIR(supplier,supplier,0)

Como el valor de búsqueda es una matriz con 10 valores, COINCIDIR devuelve una matriz de 10 resultados:

{1;1;3;3;5;1;7;3;1;5;5}

Cada artículo en esta matriz representa la primera posición en la que aparece un nombre de proveedor en los datos. Esta matriz se alimenta a la función SI, que se usa para filtrar resultados solo para el Cliente A:

SI(client=F5,{1;1;3;3;5;1;7;3;1;5;5})

SI devuelve la matriz filtrada a la función MODA:

{1;FALSO;3;FALSO;5;1;FALSO;FALSO;1;5;FALSO}

Observe que solo las posiciones asociadas con el Cliente A permanecen en la matriz. MODA ignora los valores FALSO y devuelve el número más frecuente a la función INDICE como el número de fila:

=INDICE(supplier,1)

Finalmente, con el rango de "proveedor" como el conjunto, INDICE devuelve "Brown", el proveedor más frecuente para el Cliente A.

Copyright © 2021 TRUJILLOSOFT