Cómo eliminar espacios en Power Query
En una publicación anterior, analizamos varios métodos para eliminar espacios adicionales en Excel . Uno de los métodos implicó la creación de una función personalizada en Power Query. Como este es un método más avanzado, quería profundizar un poco más y describir el método para eliminar espacios en Power Query.
Tabla de contenido
- TRIM de Excel frente a recorte de Power Query
- Buscar y reemplazar para eliminar espacios dobles
- Función personalizada para eliminar espacios en Power Query
- Funciones de consulta de energía
- Comprender la función personalizada
- Crear la función personalizada
- Usando la función personalizada
- ¿Aún tienes espacios?
- Elimine los caracteres que no se imprimen con limpieza
- Carácter de espacio encubierto que no se separa al espacio
- Conclusión
TRIM de Excel frente a recorte de Power Query
La función RECORTAR de Excel elimina los espacios iniciales, los espacios finales y los espacios múltiples del medio (conocido como recorte interno) de una cadena de texto. Es una función excelente para limpiar datos sucios.
Sin embargo, la función Recortar de Power Query, en comparación, solo elimina los espacios iniciales y finales. Los espacios en medio de la cuerda permanecen.
Es raro que alguna vez queramos múltiples espacios dentro de una cadena de texto, pero no son infrecuentes cuando se trata de datos sucios. Por lo tanto, la pregunta es, ¿cómo podemos hacer que Power Query replique las capacidades de la función TRIM de Excel?
Buscar y reemplazar para eliminar espacios dobles
Una opción para solucionar este problema es reemplazar valores. Podemos usar repetidamente la transformación de reemplazo de valores en una columna de cadena de texto hasta que se hayan eliminado todos los espacios sobrantes.
Para hacer esto:
- Seleccione la columna que contiene espacios dobles
- Haga clic en Transformar Reemplazar valores
- En el cuadro Reemplazar valores , ingrese un espacio doble en el cuadro Valor a buscar y un espacio simple en el cuadro Reemplazar con .
- Finalmente, haga clic en Aceptar
Si tenemos más de 3 espacios juntos, esto no eliminará todos los casos de espacios sobrantes. Por lo tanto, debemos repetir esta acción repetidamente hasta eliminar todos los espacios sobrantes.
Si bien este método funciona, ¿qué pasa si actualizamos y hay 5 espacios, 8 espacios o 23 espacios juntos? Simplemente no sabemos muchas veces emprender la transformación para asegurarnos de que proporcione el resultado correcto. En cambio, necesitamos encontrar una mejor opción.
Función personalizada para eliminar espacios en Power Query
Nuestro objetivo es eliminar espacios dobles en una columna mediante una única transformación de Power Query. No debería importar cuántos espacios haya. Para esto, usaremos una función personalizada.
Hay dos enfoques principales para crear funciones personalizadas en Power Query:
- Cree las transformaciones usando la interfaz de usuario y luego conviértalas en una función.
- Crea la función desde cero escribiendo el código M nosotros mismos
Normalmente recomiendo el primer método siempre que sea posible, ya que es más fácil empezar. Sin embargo, para esta transformación, es más fácil escribir el código con un poco de conocimiento de fórmulas.
Para obtener una guía más detallada sobre la creación de funciones personalizadas, consulte esta publicación: Cómo utilizar las funciones personalizadas de Power Query
Funciones de consulta de energía
Las funciones que utilizamos en nuestra solución son Text.Split, List.Select y Text.Combine.
Texto.Dividido
Devuelve una lista de valores de texto después de dividir el valor en función de un delimitador/separador específico,
Text.Split(text as text, separator as text) as list
Más información: https://powerquery.how/text-split/
Lista.Seleccionar
Devuelve una lista de valores de una lista que coinciden con los criterios de selección.
List.Select(list as list, selection as function) as list
Más información: https://powerquery.how/list-select/
Combinar texto
Devuelve el resultado de combinar una lista de valores de texto en una sola cadena, que se puede unir con un separador entre cada elemento.
Text.Combine ( textos como lista, separador opcional como texto que acepta valores NULL) como texto
Más información: https://powerquery.how/text-combine/
Comprender la función personalizada
Utilizando las 3 fórmulas enumeradas anteriormente, llevamos a cabo un proceso de 3 pasos:
- Divida el valor del texto en una lista y la división se producirá en cada aparición del carácter de espacio. Esto convierte todos los espacios en cadenas vacías.
- Eliminar las cadenas vacías de la lista.
- Vuelva a unir la lista e inserte un solo espacio entre cada palabra
Estos tres pasos crean el mismo efecto que la función RECORTAR de Excel.
Sólo requerimos un único argumento; la cadena de texto en la que realizar la función.
(textValue as text)=let //Split the text at each space character SplitText = Text.Split(textValue," "), //Remove the blank items from the list ListNonBlankValues = List.Select(SplitText,each _ ""), //Join the list with a space character between each item TextJoinList = Text.Combine(ListNonBlankValues," ")in TextJoinList
Crear la función personalizada
Para crear una función personalizada, realice los siguientes pasos:
- En Power Query, haga clic en Inicio Nueva fuente (menú desplegable) Otras fuentes Consulta en blanco
- Cambie el nombre de la consulta a fxTrim . Puedes llamarlo como quieras. "fx" es un prefijo comúnmente utilizado para identificar funciones personalizadas.
- Haga clic en Ver editor avanzado
- Ingrese el código anterior en la ventana del Editor avanzado
- Cuando termine, haga clic en Listo
La función ya está lista para usarse.
Usando la función personalizada
Ahora usemos la función personalizada en nuestra Tabla.
- Haga clic en Agregar columna Invocar función personalizada
- En la ventana Invocar función personalizada :
- Proporcione el nombre de la nueva columna que se creará ( Proveedor recortado en el siguiente ejemplo)
- Seleccione fxTrim de la lista de funciones
- Ingrese la columna en la que realizar la transformación ( Proveedor en el siguiente ejemplo)
- Finalmente, haga clic en Aceptar .
¡Ta-dah!
La nueva columna ahora contiene valores de texto limpios sin espacios sobrantes. ¡¡¡Guau, guau!!!
¿Aún tienes espacios?
Si todavía tiene espacios, es probable que sean caracteres que no se imprimen o espacios que no se separan. Aplique las siguientes transformaciones antes de aplicar la función fxTrim.
Elimine los caracteres que no se imprimen con limpieza
Los caracteres que no se imprimen son elementos como nulos, saltos de línea y retornos de carro. Tienen códigos de caracteres del 0 al 31. Para eliminar caracteres que no se pueden imprimir:
- Seleccione la columna
- Haga clic en Transformar Limpiar desde la cinta
Carácter de espacio encubierto que no se separa al espacio
El carácter de espacio continuo (conocido como nbsp ) se encuentra a menudo en las páginas web como una forma de forzar espacios en blanco en la página. Tiene un código de caracteres de 160 y no se elimina mediante las transformaciones de limpieza o recorte.
Visualmente, este carácter es un espacio, así que convirtámoslo en un espacio:
- Seleccione la columna
- Haga clic en Transformar Reemplazar valores en la cinta
- En el cuadro de diálogo Reemplazar valores , haga clic en el cuadro de valor a buscar y luego haga clic en la opción Avanzada Relacionar usando un carácter especial Insertar carácter especial Espacio sin separación . Esto ingresará #(00A0) en el cuadro. #(00A0) es el código de Power Query para un carácter nbsp
- Ingrese un espacio en el cuadro reemplazar con
- Haga clic en Aceptar
Conclusión
Es una pena que la función Recortar de Power Query no coincida con la funcionalidad de Excel. Pero afortunadamente esto no nos detiene. Podemos crear nuestra propia función para eliminar espacios no deseados en Power Query.
Y tal vez, no tener la misma funcionalidad realmente nos hace las cosas más flexibles.
Artículos Relacionados :
- 7 formas de eliminar espacios adicionales en Excel
- Consulta de energía: funciones personalizadas
- Transformaciones comunes de Power Query (más de 50 transformaciones poderosas explicadas)
Deja una respuesta