Al trabajar con datos de texto en Excel, es posible que tenga que eliminar el texto antes o después de un carácter o cadena de texto específicos.
Por ejemplo, si tiene el nombre y los datos de designación de personas, es posible que desee eliminar la designación después de la coma y solo mantener el nombre (o viceversa, donde mantiene la designación y elimina el nombre).
A veces, se puede hacer con una fórmula simple o una búsqueda y reemplazo rápidos y, a veces, se necesitan fórmulas o soluciones alternativas más complejas.
En este tutorial, le mostraré cómo eliminar el texto antes o después de un carácter específico en Excel (usando diferentes ejemplos).
Así que comencemos con algunos ejemplos sencillos.
Eliminar texto después de un carácter mediante Buscar y reemplazar
Si desea eliminar rápidamente todo el texto después de una cadena de texto específica (o antes de una cadena de texto), puede hacerlo utilizando Buscar y reemplazar y caracteres comodín.
Suponga que tiene un conjunto de datos como se muestra a continuación y desea eliminar la designación después del carácter de coma y mantener el texto antes de la coma.
A continuación se muestran los pasos para hacer esto:
- Copie y pegue los datos de la columna A en la columna B (esto también es para mantener los datos originales)
- Con las celdas de la Columna B seleccionadas, haga clic en la pestaña Inicio
- En el grupo Edición, haga clic en la opción Buscar y seleccionar
- En las opciones que aparecen en el desplegable, haga clic en la opción Reemplazar. Esto abrirá el cuadro de diálogo Buscar y reemplazar
- En el campo "Buscar qué", ingrese ,* (es decir, coma seguida de un signo de asterisco)
- Deje el campo "Reemplazar con" vacío
- Haga clic en el botón Reemplazar todo
Los pasos anteriores encontrarían la coma en el conjunto de datos y eliminarían todo el texto después de la coma (incluida la coma).
Dado que esto reemplaza el texto de las celdas seleccionadas, es una buena idea copiar el texto en otra columna y luego realizar esta operación de búsqueda y reemplazo, o crear una copia de seguridad de sus datos para que tenga los datos originales intactos.
¿Como funciona esto?
* (signo de asterisco) es un carácter comodín que puede representar cualquier número de caracteres.
Cuando lo uso después de la coma (en el campo "Buscar qué") y luego hago clic en el botón Reemplazar todo, encuentra la primera coma en la celda y la considera una coincidencia.
Esto se debe a que el signo de asterisco (*) se considera una coincidencia con toda la cadena de texto que sigue a la coma.
Entonces, cuando presiona el botón reemplazar todo, reemplaza la coma y todo el texto que sigue.
Nota: Este método funciona bien, entonces solo tiene una coma en cada celda (como en nuestro ejemplo). En caso de que tenga varias comas, este método siempre buscará la primera coma y luego eliminará todo lo que sigue. Por lo tanto, no puede usar este método si desea reemplazar todo el texto después de la segunda coma y mantener el primero como está.En caso de que desee eliminar todos los caracteres antes de la coma, cambie la entrada del campo buscar qué con el signo de asterisco antes de la coma (*, en lugar de, *)
Eliminar texto mediante fórmulas
Si necesita más control sobre cómo buscar y reemplazar texto antes o después de un carácter específico, es mejor usar las fórmulas de texto incorporadas en Excel.
Suponga que tiene el siguiente conjunto de datos donde desea eliminar todo el texto después de la coma.
A continuación se muestra la fórmula para hacer esto:
= IZQUIERDA (A2, ENCONTRAR (",", A2) -1)
La fórmula anterior usa la función ENCONTRAR para encontrar la posición de la coma en la celda.
Luego, la función IZQUIERDA usa este número de posición para extraer todos los caracteres antes de la coma. Como no quiero la coma como parte del resultado, he restado 1 del valor resultante de la fórmula de búsqueda.
Este fue un escenario simple.
Tomemos uno un poco complejo.
Supongamos que tengo este conjunto de datos a continuación donde quiero eliminar todo el texto después de la segunda coma.
Aquí está la fórmula que hará esto:
= IZQUIERDA (A2, ENCONTRAR ("!", SUSTITUIR (A2, ",", "!", 2)) - 1)
Dado que este conjunto de datos tiene varias comas, no puedo usar la función ENCONTRAR para obtener la posición de la primera coma y extraer todo lo que está a la izquierda.
De alguna manera necesito averiguar la posición de la segunda coma y luego extraer todo lo que está a la izquierda de la segunda coma.
Para hacer esto, he usado la función SUSTITUIR para cambiar la segunda coma a un signo de exclamación. Ahora bien, esto me da un carácter único en la celda. Ahora puedo usar la posición del signo de exclamación para extraer todo a la izquierda de la segunda coma.
Esta posición del signo de exclamación se usa en la función IZQUIERDA para extraer todo antes de la segunda coma.
¡Hasta ahora tan bueno!
Pero, ¿qué pasa si hay un número inconsistente de comas en el conjunto de datos?
Por ejemplo, en el siguiente conjunto de datos, algunas celdas tienen dos comas y algunas celdas tienen tres comas, y necesito extraer todo el texto antes de la última coma.
En este caso, necesito averiguar de alguna manera la posición de la última aparición de la coma y luego extraer todo lo que está a la izquierda.
A continuación se muestra la fórmula que hará eso.
= IZQUIERDA (A2, ENCONTRAR ("!", SUSTITUIR (A2, ",", "!", LARGO (A2) -LENTE (SUSTITUIR (A2, ",", "")))) - 1)
La fórmula anterior usa la función LEN para encontrar la longitud total del texto en la celda, así como la longitud del texto sin la coma.
Cuando resto estos dos valores, me da el número total de comas en la celda.
Entonces, me daría 3 para la celda A2 y 2 para la celda A4.
Luego, este valor se usa dentro de la fórmula SUSTITUIR para reemplazar la última coma con un signo de exclamación. Y luego puede usar la función izquierda para extraer todo lo que está a la izquierda del signo de exclamación (que es donde solía estar la última coma)
Como puede ver en los ejemplos, el uso de una combinación de fórmulas de texto le permite manejar muchas situaciones diferentes.
Además, dado que el resultado está vinculado con los datos originales, cuando cambia los datos originales, el resultado se actualiza automáticamente.
Eliminar texto usando Flash Fill
Flash Fill es una herramienta que se introdujo en Excel 2013 y está disponible en todas las versiones posteriores.
Funciona identificando patrones cuando ingresa manualmente los datos y luego los extrapola para brindarle los datos de toda la columna.
Entonces, si desea eliminar el texto antes o después de un carácter específico, solo necesita mostrarle al hada flash cómo se vería el resultado (ingresándolo manualmente un par de veces), y el relleno flash comprenderá automáticamente el patrón y le dará Los resultados.
Déjame mostrarte esto con un ejemplo.
A continuación, tengo el conjunto de datos donde quiero eliminar todo el texto después de la coma.
Estos son los pasos para hacer esto usando Flash Fill:
- En la celda B2, que es la columna adyacente de nuestros datos, ingrese manualmente "Jeffery Haggins" (que es el resultado esperado)
- En la celda B3, ingrese "Tim Scott" (que es el resultado esperado para la segunda celda)
- Seleccione el rango B2: B10
- Haga clic en la pestaña Inicio
- En el grupo Edición, haga clic en la opción desplegable Rellenar
- Haga clic en Relleno flash
Los pasos anteriores le darían el resultado que se muestra a continuación:
También puede utilizar el método abreviado de teclado Flash Fill Control + E después de seleccionar las celdas en la columna de resultados (Columna B en nuestro ejemplo)
Flash Fill es una herramienta maravillosa y, en la mayoría de los casos, es capaz de reconocer el patrón y darte el resultado correcto. pero en algunos casos, es posible que no reconozca el patrón correctamente y que le dé resultados incorrectos.
Así que asegúrese de verificar los resultados de Flash Fill
Y al igual que hemos eliminado todo el texto después de un carácter específico usando el relleno flash, puede usar los mismos pasos para eliminar el texto antes de un carácter específico. simplemente muestre el relleno flash cómo el resultado debería verse como mi Internet manualmente en la columna adyacente, y haría el resto.
Eliminar texto usando VBA (función personalizada)
Todo el concepto de eliminar el texto antes o después de un carácter específico depende de encontrar la posición de ese carácter.
Como se vio anteriormente, encontrar la última aparición de ese carácter bueno significa usar una combinación de fórmulas.
Si esto es algo que necesita hacer con bastante frecuencia, puede simplificar este proceso creando una función personalizada usando VBA (llamada Funciones definidas por el usuario).
Una vez creada, puede volver a utilizar esta función una y otra vez. También es mucho más simple y fácil de usar (ya que la mayor parte del trabajo pesado se realiza mediante el código VBA en el back-end).
Debajo del código VBA que puede usar para crear la función personalizada en Excel:
Función LastPosition (rCell As Range, rChar As String) 'Esta función proporciona la última posición del carácter especificado' Este código ha sido desarrollado por Sumit Bansal (https://trumpexcel.com) Dim rLen As Integer rLen = Len (rCell) For i = rLen To 1 Step -1 If Mid (rCell, i - 1, 1) = rChar Then LastPosition = i - 1 Salir de función Finalizar si siguiente i Finalizar función
Debe colocar el código VBA en un módulo normal en el Editor VB o en el Libro de macros personal. Una vez que lo tenga allí, puede usarlo como cualquier otra función de hoja de trabajo normal en el libro de trabajo.
Esta función toma 2 argumentos:
- La referencia de celda para la que desea encontrar la última aparición de un carácter o cadena de texto específicos
- El carácter o la cadena de texto cuya posición necesita encontrar
Suponga que ahora tiene el siguiente conjunto de datos y desea eliminar todo el texto después de la última coma y solo tiene el texto antes de la última coma.
A continuación se muestra la fórmula que hará eso:
= IZQUIERDA (A2, Última posición (A2, ",") - 1)
En la fórmula anterior, he especificado encontrar la posición de la última coma. En caso de que desee encontrar la posición de algún otro carácter o cadena de texto, debe usarlo como segundo argumento en la función.
Como puede ver, esto es mucho más corto y más fácil de usar, en comparación con la fórmula de texto largo que usamos en la sección anterior.
Si coloca el código VBA en un módulo en un libro de trabajo, solo podrá usar esta función personalizada en ese libro de trabajo específico. Si desea utilizar esto en todos los libros de trabajo de su sistema, debe copiar y pegar este código en el Libro de macros personal.
Estos son algunos de los correos que puede utilizar para eliminar rápidamente el texto antes o después de un carácter específico en Excel.
Si se trata de algo sencillo que se realiza una sola vez, puede hacerlo mediante buscar y reemplazar. y si es un poco más complejo, entonces necesita usar una combinación de fórmulas de Excel incorporadas, o incluso crear su propia fórmula personalizada usando VBA.
Espero que este tutorial te haya resultado útil.