Funciones de consulta personalizadas de LuckyTemplates

Funciones de consulta personalizadas de LuckyTemplates

Para el tutorial de hoy, vamos a crear una función de consulta personalizada de LuckyTemplates que se ocupará de un formato de datos apilados común y difícil de manejar. Esta técnica es fácilmente reutilizable en múltiples informes y múltiples tablas. Puedes ver el video completo de este tutorial en la parte inferior de este blog.

Esta es una continuación del tutorial que hice recientemente en el que tratamos con un formato común de datos apilados difícil de manejar y usamos Modulo, Pivot y algunas funciones de limpieza con Power Query para transformar esos datos en un formato organizado y funcional.

Funciones de consulta personalizadas de LuckyTemplates

Es muy probable que tengas que repetir este proceso. Si este tipo de formato resultó de copiar y pegar, probablemente volverá a suceder. Entonces, en este caso, probablemente querrá crear una función personalizada que se pueda reutilizar en varios informes y tablas, independientemente de cómo se llamen y qué más haya en esas tablas.

Tabla de contenido

Cómo crear y depurar funciones de consulta personalizadas de LuckyTemplates

Pasemos a Power Query sobre esto. Si vamos a nuestra tabla de datos, en el editor avanzado, tenemos el código M de cómo terminamos pasando de esa pila de datos al formato deseado.

Funciones de consulta personalizadas de LuckyTemplates

Si queremos reutilizar esto, simplemente hacemos clic con el botón derecho en Datos y decimos Crear función .

Funciones de consulta personalizadas de LuckyTemplates

Dice que no va a hacer referencia a ningún parámetro, pero está bien crear una función sin parámetros. Vamos a responder que sí, porque vamos a agregar los parámetros a medida que avanzamos en el Editor avanzado. Llamaremos a esta función, Unstack – 3 Elements , solo porque tenemos las tres filas en el formato sin formato. Si tuviéramos un formato de dos filas, probablemente construiríamos uno separado que tuviera dos o cuatro elementos.

Funciones de consulta personalizadas de LuckyTemplates

Así que ahora tenemos este Invoke, no tenemos parámetros, vayamos al Editor avanzado y comencemos a trabajar en este.

Funciones de consulta personalizadas de LuckyTemplates

Primero, no necesitamos esta Fuente. Vamos a usar los parámetros de la función para definir nuestra fuente.

Funciones de consulta personalizadas de LuckyTemplates

Queremos definir el parámetro que va a ingresar. Lo hacemos con un paréntesis abierto y luego un nombre de parámetro. Llamemos a esto Stack , que será esa columna de datos que son los datos de la pila sin formato que se obtuvieron al pegar las direcciones de correo electrónico.

Queremos que esto entre como una lista y queremos que esto resulte en una tabla porque a medida que la giramos de esa única columna a varias columnas, pasa de una lista a una tabla. Y ahora, necesitamos convertir esa lista entrante en una tabla para que podamos agregar nuestro índice, iniciar nuestro Modulo unpivot y hacer todo lo necesario para reformatearlo.

Funciones de consulta personalizadas de LuckyTemplates

Lo llamaremos ConvertStack , y usará una función llamada Table.FromList . Como muchas de las funciones M, hace exactamente lo que dice. Solo se necesita una lista. En este caso, la lista será nuestra lista Stack. Y luego, necesitamos reemplazar la Fuente aquí con nuestro ConvertStack. ¡Se ve bastante bien! No tenemos errores de sintaxis, así que presione Listo.

Ahora nos está dando lo que queríamos, que es la posibilidad de elegir una columna.

Funciones de consulta personalizadas de LuckyTemplates

Luego, elegiremos TestData, que son los datos mal formateados. Elegiremos la columna Valor y luego haremos clic en Aceptar. Después de eso, hacemos clic en Invocar.

Funciones de consulta personalizadas de LuckyTemplates

Sin embargo, obtenemos este error. Es muy difícil precisar qué es este error. Uno de los problemas con las funciones personalizadas es que no desglosan los Pasos aplicados, solo obtiene un paso para toda la función personalizada. Pero hay una forma de evitarlo en la depuración que te mostraré. Será mucho más fácil averiguar qué está pasando aquí.

Funciones de consulta personalizadas de LuckyTemplates

En lugar de ejecutar esto por el momento como una función, lo ejecutaremos como una consulta. Solo vamos a iniciar manualmente esa llamada de pila. Tenemos que definir qué es Stack porque no lo estamos dibujando a través de la interacción de elegirlo en Invoke. Entonces, tenemos Stack igual a TestData y la columna Value de TestData.

Funciones de consulta personalizadas de LuckyTemplates

Lo que hace es dividirlo ahora en Pasos aplicados. Esto nos ayudará a averiguar por qué esto no funciona. Observe una cosa interesante cuando extraemos Stack. Inicialmente, extrae TestData[Value], pero cuando lo convertimos en una tabla, en lugar de Value es el encabezado de la columna, el encabezado de la columna ahora es Column1.

Funciones de consulta personalizadas de LuckyTemplates

Recuerde el mensaje de error, fue que no pudo encontrar la columna Valor. La razón por la que no pudo encontrar la columna Valor es que la función Table.FromList cambia el nombre a Columna1.

Si bajamos por los Pasos Aplicados, podéis ver que es en el paso Personalizado Añadido donde nos da el error. Aquí es donde no se encontró el valor del registro.

Funciones de consulta personalizadas de LuckyTemplates

Entonces, si vamos al Editor avanzado, encontramos ese campo Personalizado, y podemos ver que está en el Texto. Eliminar donde estamos eliminando esos caracteres basura que no necesitábamos, pero aún se refiere a el campo Valor. Lo cambiaremos a Column1. Del mismo modo, en el campo Columnas eliminadas, se refiere a Valor, por lo que también lo cambiaremos a Columna1.

Funciones de consulta personalizadas de LuckyTemplates

Y cuando llegamos al final de los Pasos aplicados, produce el resultado final perfecto.

Funciones de consulta personalizadas de LuckyTemplates

Ahora que sabemos que esto está funcionando bien, solo tenemos una cosa más que hacer. Recuerde que para depurarlo, convertimos la función personalizada en una consulta. Entonces, ahora necesitamos tomar esa consulta y volverla a convertir en una función.

Funciones de consulta personalizadas de LuckyTemplates


Creación de una función de limpieza de texto personalizada en
código M de Power Query en columnas personalizadas de Power Query | Consulta de funciones de LuckyTemplates
y operadores en el editor de consultas

Conclusión

En este tutorial, creamos esta función personalizada, la depuramos, la probamos y funciona muy bien. Y ahora, cada vez que tengamos una pila de tres elementos, podemos simplemente seleccionar esa tabla, elegir esa columna dentro de la tabla y ejecutar esa función personalizada. Luego, aplique el Modulo, el unpivot y limpie.

Esto debería brindarle algunas buenas herramientas en términos de creación de funciones personalizadas. Además, recuerde ese truco sobre la depuración al volver a convertirlo en una consulta de una función y luego volver a cambiarlo después de la depuración. Es una herramienta realmente valiosa que facilita mucho la depuración de funciones personalizadas.

¡Mis mejores deseos!


Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Cómo guardar y cargar un archivo RDS en R

Cómo guardar y cargar un archivo RDS en R

Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.

Introducción al contexto de filtro en LuckyTemplates

Introducción al contexto de filtro en LuckyTemplates

En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.

Ideas de materialización para cachés de datos en DAX Studio

Ideas de materialización para cachés de datos en DAX Studio

Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.

Informes comerciales con LuckyTemplates

Informes comerciales con LuckyTemplates

Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber