Remover caracteres espaciales consiste en tomar un texto y dejar sólo las letras, es decir, “A” a “Z” y “a” a “z”, manteniendo sólo aquellos caracteres que se consideren apropiados, estos pueden ser los números: “0” a “9” , las vocales con acentos agudos (“á”,“é”, “í”, “ó”, “ú”); las vocales con acentos graves (“à”, “è”, “ì”, “ò”, “ù”); las diéresis (“ä”, “ë”, “ï”, “ö”, “ü”); todo tipo de acentos (“á”, “à”, “â”, “ã”, “ä”, “å”) o los signos de puntuación (“.”, “,”, “;”, “‘:”, “¿?”, “()”, “[]”, “””, “¡!”).
Remover Caracteres Especiales
.
Función: Text.RemoveSpecialCharacters

Puedes estudiar el detalle de la construcción de la función personalizada (aquí) / Gratis
Introducción
.
En una columna tenemos comentarios con todo tipo de caracteres especiales en los textos de sus celdas, por ejemplo: “ǁPower BIǁ ǂPower Automateǂ |Power Apps|”, además algunas de los textos de las celdas contienen números, por ejemplo: “En ©@PowerBI licencias a $bajo costo ±10 USD” e incluso saltos de línea, como se observa a continuación:
.
Lo que se quiere es: remover todo tipo de carácter especial, sin embargo, mantener los números y las tildes.
Función Text.RemoveSpecialCharacters
.
Para solucionar este caso, en una consulta en blanco en el editor de Power Query Online o Power Query Desktop, copie y pegue la función personalizada debajo y renómbrela como: Text_RemoveSpecialCharacters (aunque el nombre puede ser cualquiera de tu preferencia), si deseas añadir la función a la librería de funciones M para quede 100% nativa, por consiguiente sea posible llamarla con el punto, es decir: Text.RemoveSpecialCharacters, mira los detalles de cómo hacerlo en este vídeo.
Para remover los caracteres especiales y mantener números y tildes, debemos implementar la función personalizada: Text.RemoveSpecialCharacters, la cual pertenece a la categoría de funciones de texto (Text).
Sintaxis
=
Text.RemoveSpecialCharacters (
Texto as text,
Optional Mantener Números as nullable logical,
Optional Mantener Acentos Generales as nullable logical,
Optional Mantener Acentos Agudos as nullable logical,
Optional Mantener Diéresis as nullable logical
Optional Mantener Acentos Graves as nullable logical
Optional Mantener Signos de Puntuacion as nullable logical
Optional Mantener Caracteres No Imprimibles as nullable logical
) as text
Su configuración por defecto elimina cualquier carácter especial, incluyendo acentos de cualquier tipo: agudos, graves, circunflejos, diéresis, y especiales. Incluso elimina caracteres no imparables como: saltos de línea, retornos de carro, tabulador, etc. Los número también son removidos en la configuración por defecto, es decir, sólo mantiene las letras “A” a “Z” y “a” a “z” incluyendo la “Ñ” y “ñ”, no obstante, cuenta con diversidad de parámetros para mantener conjuntos de caracteres especiales si es requerido.
Función | Descripción |
---|---|
Texto | Texto con nombres o apellidos compuestos a dividir. |
Mantener Números | true si se desean mantener los caracteres {0 a 9} de lo contrario cualquier cosa. |
Mantener Acentos Generales | true si se desean mantener los acentos {á, à, â, ã, ä, å…} de lo contrario cualquier cosa. |
Mantener Acentos Agudos | true si se desean mantener los acentos {á, é, í, ó, ú} de lo contrario cualquier cosa. |
Mantener Diéresis | true si se desean mantener los acentos {ä, ë, ï, ö, ü} de lo contrario cualquier cosa. |
Mantener Acentos Graves | true si se desean mantener los acentos {à, è, ì, ò, ù} de lo contrario cualquier cosa. |
Mantener Signos de Puntuación | true si se desean mantener los signos de puntuación de lo contrario cualquier cosa. |
Mantener Caracteres No Imprimibles | true si se desean mantener los caracteres no imprimibles de lo contrario cualquier cosa. |
Si prefieres un vídeo que detalle cómo se utiliza: clic aquí
Ejemplo 1:
.
De la tabla mostrada a continuación en su columna Texto, se desean eliminar todo tipo de caracteres especiales, incluyendo los números y caracteres no imprimibles:
Para ello (y una vez cargada la función personalizada) vamos a la pestaña Agregar Columna, grupo General y clic en el comando Invocar Función Personalizada, con ello se despliega el siguiente cuadro de diálogo:

En la lista desplegable: Nombre de la función seleccionamos la función personalizada Text_RemoveSpecialCharacters, luego, debajo de la sección Texto, es decir, en el pequeño icono de la izquierda, pulsamos clic para elegir Usar valores en una columna o Nombre de columna, finalmente en la lista desplegable “principal” seleccionamos la columna Texto, el resto de las opciones en el cuadro de diálogo se dejan intactas, dado que no se desea ningún tipo de carácter, por lo tanto, la configuración luce así:

Al pulsar clic en el botón Aceptar notaremos que se agrega una nueva columna en la tabla con todos los caracteres removidos:

Ejemplo 2:
.
— ¿Qué sucede si de la tabla anterior queremos mantener los números y los acentos?
En dicho caso, vamos al panel de pasos aplicados para pulsar clic en el engranaje de la derecha que aparece en el paso Función personalizada invocada:

Con ello vuelve aparece el cuadro de diálogo Invocar función personalizada con la configuración previa, en esta oportunidad nos dirigimos a la lista desplegable Mantener Números y seleccionamos Verdadero si estamos en Power Query Online, si estamos en Power Query Desktop digitamos true:

Una vez pulsamos clic en el botón Aceptar, podremos notar en la columna Función personalizada invocada como en la celda asociada a la fila 4 se muestran todos los valores numéricos, pero por supuesto removió todos símbolos de aritmética básica, situación que no ocurría anteriormente donde la celda quedaba vacía:

Ejemplo 3:
.
— ¿Qué sucede si queremos mantener números, acentos generales, caracteres no imprimibles y signos de puntación?
Pues bien, ponemos en el cuadro de diálogo true allí donde sea requerido, así:

— El resultado:

Autores
La función personalizada fue desarrollada como proyecto en la capacitación Especialización en Power Query y Lenguaje M en su edición Julio del 2022, por lo que sus participantes aportaran activamente en su desarrollo, un cordial agradecimiento y gracias por su contribución a:
• José Luis Francisco Rodríguez
• Rolando Gelabert Fernández
• Manuel Ruíz Anjel
• Jorge Yuk
• Joseph Pierre Díaz Ramírez
• Elmer Antonio Zuñiga Sava
• Jorge Gabriel Prado Henkle
• Edisson Ballesteros
• Rommel R. Alemán T.
• Juan Carlos Pérez Varela
• Josué Lino Vargas Cuevas
• Jose Alejandro Abreu Peguero
• Marlon Fallas Carazo
• Erick Raziel Yanapa López
Última Actualización: 12 de julio, 2022
Historial de Actualizaciones [>]