image

Sabemos que link: / excel-text-formulas-excel-trim-function [TRIM]

y link: / excel-text-formulas-how-to-use-the-clean-function-in-excel [CLEAN]

Las funciones de Excel se utilizan para limpiar caracteres no imprimibles y espacios adicionales de cadenas, pero no ayudan mucho a identificar cadenas que contienen caracteres especiales como @ o! etc. En tales casos utilizamos UDF.

Entonces, si desea saber si una cadena contiene algún carácter especial, no encontrará ninguna fórmula o función de Excel para hacerlo. Podemos encontrar los caracteres especiales que están en el teclado escribiendo manualmente, pero no puede saber si hay símbolos en la cadena o no.

Encontrar caracteres especiales puede ser muy importante para fines de limpieza de datos. Y en algunos casos, debe hacerse. Entonces, ¿cómo hacemos esto en Excel? ¿Cómo podemos saber si una cadena contiene caracteres especiales?

Bueno, podemos usar UDF para hacerlo. La siguiente fórmula devolverá VERDADERO si alguna celda contiene cualquier carácter que no sea de 1 a 0 y de A a Z (en ambos casos). Si no encuentra ningún carácter especial, devolverá FALSE.

Fórmula genérica

=ContainsSpecialCharacters(string)

Cadena: la cadena que desea verificar en busca de caracteres especiales.

Para que esta fórmula funcione, deberá colocar el siguiente código en el módulo de su libro de trabajo.

Entonces abre Excel. Presione ALT + F11 para abrir VBE. Inserte un módulo del menú Insertar. Copie el código siguiente y péguelo en el módulo.

Function ContainsSpecialCharacters(str As String) As Boolean

For I = 1 To Len(str)

ch = Mid(str, I, 1)

Select Case ch

Case "0" To "9", "A" To "Z", "a" To "z", " "

ContainsSpecialCharacters = False

Case Else

ContainsSpecialCharacters = True

Exit For

End Select

Next

End Function

image

Ahora la función está lista para usarse.

Vaya a la hoja de trabajo en el libro de trabajo que contiene las cadenas que desea verificar.

image

Escriba la siguiente fórmula en la celda C2:

=ContainsSpecialCharacters(B13)

image

Devuelve VERDADERO para la primera cadena ya que contiene un carácter especial. Cuando copia la fórmula, muestra FALSE para la cadena B14 y así sucesivamente. Pero extrañamente muestra TRUE para la última cadena «Exceltip.com». Es porque contiene un punto (.). ¿Pero por qué es así? Examinemos el código para entenderlo.

¿Cómo funciona la función?

Estamos iterando a través de todos los caracteres de la cadena usando el link: / vba-for-loops-with-7-examples [For loop]

y función media de VBA. La función Mid extrae un carácter a la vez de la cadena y lo almacena en la variable ch.

For I = 1 To Len(str)

ch = Mid(str, I, 1)

Ahora viene la parte principal. Usamos la instrucción select case para verificar qué contiene la variable ch.

Le decimos a VBA que compruebe si ch contiene alguno de los valores definidos. He definido 0 a 9, A a Z, a a zy «» (espacio). Si c h contiene alguno de estos, establecemos su valor en False.

Select Case ch

Case "0" To "9", "A" To "Z", "a" To "z", " "

ContainsSpecialCharacters = False

Puede ver que no tenemos un punto (.) En la lista y es por eso que obtenemos VERDADERO para la cadena que contiene el punto. Puede agregar cualquier carácter a la lista para estar exento de la fórmula.

Si ch contiene cualquier carácter que no sean los caracteres enumerados, establecemos el resultado de la función en Verdadero y finalizamos el ciclo allí mismo.

Case Else

ContainsSpecialCharacters = True

Exit For

Así que sí, así es como funciona. Pero si desea limpiar caracteres especiales, deberá realizar algunos cambios en la función.

¿Cómo limpiar caracteres especiales de cadenas en Excel? Para limpiar caracteres especiales de una cadena en Excel, he creado otra función personalizada en VBA. La sintaxis de la función es:

=CleanSpecialCharacters(string)

Esta función devuelve una versión limpia de la cadena que se le pasó.

La nueva cadena no contendrá ninguno de los caracteres especiales. El código de esta función es el siguiente:

Function CleanSpecialCharacters(str As String)

Dim nstr As String

nstr = str

For I = 1 To Len(str)

ch = Mid(str, I, 1)

Select Case ch

Case "0" To "9", "A" To "Z", "a" To "z", " "

'Do nothing

Case Else

nstr = Replace(nstr, ch, "")

End Select

Next

CleanSpecialCharacters = nstr

End Function

Copie esto en el mismo módulo que copió en el código anterior.

Cuando usa esta fórmula en las cadenas, así es como serán los resultados:

image

Puede ver que todos los caracteres especiales se eliminan de la cadena, incluido el punto.

¿Cómo funciona?

Funciona igual que la función anterior. La única diferencia es que esta función reemplaza cada carácter especial con un carácter nulo. Forma una nueva cadena y devuelve esta cadena.

Select Case ch

Case "0" To "9", "A" To "Z", "a" To "z", " "

'ContainsSpecialCharacters = False

Case Else

nstr = Replace(nstr, ch, "")

End Select

Si desea eximir a cualquier personaje de ser limpiado, puede agregarlo a la lista en el código. Excel perdonará ese carácter especial.

Así que sí, chicos, así es como pueden encontrar y reemplazar caracteres especiales de una cadena en Excel. Espero que esto haya sido lo suficientemente explicativo y útil.

Si no le ayuda a resolver su problema, háganoslo saber en la sección de comentarios a continuación.

Artículos relacionados:

link: / excel-text-formulas-excel-trim-function [Cómo usar la función TRIM en Excel]: * La función TRIM se usa para recortar cadenas y limpiar cualquier espacio inicial o final de la cadena. Esto nos ayuda mucho en el proceso de limpieza de datos.

link: / excel-text-formulas-how-to-use-the-clean-function-in-excel [Cómo usar la función CLEAN en Excel]: La función Clean se usa para limpiar caracteres no imprimibles de la cadena. Esta función se utiliza principalmente con la función TRIM para limpiar datos extranjeros importados.

link: / excel-text-replace-text-from-end-of-a-string-from-variable-position [Reemplazar texto desde el final de una cadena comenzando desde la posición variable]: * Para reemplazar el texto desde el final de la cadena, usamos la función REPLACE.

La función REPLACE usa la posición del texto en la cadena para reemplazarlo.

link: / excel-text-formulas-check-a-list-of-texts-in-string [Cómo verificar si una cadena contiene uno de muchos textos en Excel]: * Para buscar, verifique si una cadena contiene alguno de texto múltiple, usamos esta fórmula. Usamos la función SUM para resumir todas las coincidencias y luego realizamos una lógica para verificar si la cadena contiene alguna de las múltiples cadenas.

link: / counting-count-cells-that-contains-specific-text [Contar celdas que contienen texto específico]: * Una simple función CONTAR.SI hará la magia. Para contar el número de celdas múltiples que contienen una cadena dada, usamos el operador comodín con la función CONTAR.SI.

link: / excel-text-formulas-excel-replace-vs-substitute-function [Excel REPLACE vs SUBSTITUTE function]: * Las funciones REPLACE y SUBSTITUTE son las funciones más mal entendidas. Para buscar y reemplazar un texto dado usamos la función SUSTITUIR. Donde REPLACE se usa para reemplazar un número de caracteres en la cadena…

Artículos populares:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-incrementa-your-productividad [50 accesos directos de Excel para aumentar su productividad] | Acelera tu tarea. Estos 50 atajos le permitirán trabajar aún más rápido en Excel.

link: / fórmulas-and-functions-Introduction-of-vlookup-function [Cómo utilizar la función VLOOKUP de Excel] | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas. link: / tips-countif-in-microsoft-excel [Cómo usar]

enlace: / fórmulas-y-funciones-introducción-de-vlookup-function [Excel]

enlace: / tips-countif-in-microsoft-excel [Función COUNTIF] | Cuente valores con condiciones usando esta asombrosa función.

No necesita filtrar sus datos para contar valores específicos. La función Countif es esencial para preparar su tablero.

link: / excel-formula-and-function-excel-sumif-function [Cómo utilizar la función SUMIF en Excel] | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.